Re: [Lug-Nuts] compiling gd

From: Mike Machado (mike@innercite.com)
Date: Tue Sep 21 1999 - 16:27:59 PDT


You said it put the .a's and the .h's in the /usr/local/lib and /usr/local/include? This is where they should go.
If the other files are binary programs then it would make sense to put them into /usr/local/bin.

Brian E. Lavender wrote:

> I am installing the gd image manipulation tool.
>
> I compiled the gd 1.3 library for manipulating GIF images. Thing is it
> does not have a make install target, so I am a little uncertain as far
> as where to drop the compiled files. It seemed like before I dropped
> the executable files in /usr/local/bin. That would be gddemo, giftogd,
> and webgif. It looks as if it put all the compiled library files into
> a libgd.a archive along with creating a gd.h header (which is not made,
> but included with the source) file so when I want to use the library I
> say #include <gd.h>
>
> Where do I drop these files? Was I correct to previously just move the
> giftogd, and webgif to /usr/local/bin? If you want I can send you the
> tar ball. It is small. Here is the make file.
>
> brian
>
> $ cat Makefile
>
> #Depending on your system, you will need to modify this makefile.
>
> #If you do not have gcc, change the setting for CC, but you must
> #use an ANSI standard C compiler (NOT the old SunOS 4.1.3 cc
> #compiler; get gcc if you are still using it).
>
> #If the ar command fails on your system, consult the ar manpage
> #for your system.
>
> CC=gcc
> AR=ar
> CFLAGS=-O
> LIBS=-L./ -lgd -lm
>
> all: libgd.a gddemo giftogd webgif
>
> gddemo: gddemo.o libgd.a gd.h gdfonts.h gdfontl.h
> $(CC) gddemo.o -o gddemo $(LIBS)
>
> giftogd: giftogd.o libgd.a gd.h
> $(CC) giftogd.o -o giftogd $(LIBS)
>
> libgd.a: gd.o gdfontt.o gdfonts.o gdfontmb.o gdfontl.o gdfontg.o \
> gd.h gdfontt.h gdfonts.h gdfontmb.h gdfontl.h gdfontg.h
> rm -f libgd.a
> $(AR) rc libgd.a gd.o gdfontt.o gdfonts.o gdfontmb.o \
> gdfontl.o gdfontg.o
>
> webgif: webgif.o libgd.a gd.h
> $(CC) webgif.o -o webgif $(LIBS)
>
> clean:
> rm -f *.o *.a gddemo giftogd
>
> $ cat gd.h
>
> #ifndef GD_H
> #define GD_H 1
>
> /* gd.h: declarations file for the gifdraw module.
>
> Written by Tom Boutell, 5/94.
> Copyright 1994, Cold Spring Harbor Labs.
> Permission granted to use this code in any fashion provided
> that this notice is retained and any alterations are
> labeled as such. It is requested, but not required, that
> you share extensions to this module with us so that we
> can incorporate them into new versions. */
>
> /* stdio is needed for file I/O. */
> #include <stdio.h>
>
> /* This can't be changed, it's part of the GIF specification. */
>
> #define gdMaxColors 256
>
> /* Image type. See functions below; you will not need to change
> the elements directly. Use the provided macros to
> access sx, sy, the color table, and colorsTotal for
> read-only purposes. */
>
> typedef struct gdImageStruct {
> unsigned char ** pixels;
> int sx;
> int sy;
> int colorsTotal;
> int red[gdMaxColors];
> int green[gdMaxColors];
> int blue[gdMaxColors];
> int open[gdMaxColors];
> int transparent;
> int *polyInts;
> int polyAllocated;
> struct gdImageStruct *brush;
> struct gdImageStruct *tile;
> int brushColorMap[gdMaxColors];
> int tileColorMap[gdMaxColors];
> int styleLength;
> int stylePos;
> int *style;
> int interlace;
> } gdImage;
>
> typedef gdImage * gdImagePtr;
>
> typedef struct {
> /* # of characters in font */
> int nchars;
> /* First character is numbered... (usually 32 = space) */
> int offset;
> /* Character width and height */
> int w;
> int h;
> /* Font data; array of characters, one row after another.
> Easily included in code, also easily loaded from
> data files. */
> char *data;
> } gdFont;
>
> /* Text functions take these. */
> typedef gdFont *gdFontPtr;
>
> /* For backwards compatibility only. Use gdImageSetStyle()
> for MUCH more flexible line drawing. Also see
> gdImageSetBrush(). */
> #define gdDashSize 4
>
> /* Special colors. */
>
> #define gdStyled (-2)
> #define gdBrushed (-3)
> #define gdStyledBrushed (-4)
> #define gdTiled (-5)
>
> /* NOT the same as the transparent color index.
> This is used in line styles only. */
> #define gdTransparent (-6)
>
> /* Functions to manipulate images. */
>
> gdImagePtr gdImageCreate(int sx, int sy);
> gdImagePtr gdImageCreateFromGif(FILE *fd);
> gdImagePtr gdImageCreateFromGd(FILE *in);
> gdImagePtr gdImageCreateFromXbm(FILE *fd);
> void gdImageDestroy(gdImagePtr im);
> void gdImageSetPixel(gdImagePtr im, int x, int y, int color);
> int gdImageGetPixel(gdImagePtr im, int x, int y);
> void gdImageLine(gdImagePtr im, int x1, int y1, int x2, int y2, int color);
> /* For backwards compatibility only. Use gdImageSetStyle()
> for much more flexible line drawing. */
> void gdImageDashedLine(gdImagePtr im, int x1, int y1, int x2, int y2, int color);
> /* Corners specified (not width and height). Upper left first, lower right
> second. */
> void gdImageRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color);
> /* Solid bar. Upper left corner first, lower right corner second. */
> void gdImageFilledRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color);
> int gdImageBoundsSafe(gdImagePtr im, int x, int y);
> void gdImageChar(gdImagePtr im, gdFontPtr f, int x, int y, int c, int color);
> void gdImageCharUp(gdImagePtr im, gdFontPtr f, int x, int y, int c, int color);
> void gdImageString(gdImagePtr im, gdFontPtr f, int x, int y, unsigned char *s, int color);
> void gdImageStringUp(gdImagePtr im, gdFontPtr f, int x, int y, unsigned char *s, int color);
> void gdImageString16(gdImagePtr im, gdFontPtr f, int x, int y, unsigned short *s, int color);
> void gdImageStringUp16(gdImagePtr im, gdFontPtr f, int x, int y, unsigned short *s, int color);
>
> /* Point type for use in polygon drawing. */
>
> typedef struct {
> int x, y;
> } gdPoint, *gdPointPtr;
>
> void gdImagePolygon(gdImagePtr im, gdPointPtr p, int n, int c);
> void gdImageFilledPolygon(gdImagePtr im, gdPointPtr p, int n, int c);
>
> int gdImageColorAllocate(gdImagePtr im, int r, int g, int b);
> int gdImageColorClosest(gdImagePtr im, int r, int g, int b);
> int gdImageColorExact(gdImagePtr im, int r, int g, int b);
> void gdImageColorDeallocate(gdImagePtr im, int color);
> void gdImageColorTransparent(gdImagePtr im, int color);
> void gdImageGif(gdImagePtr im, FILE *out);
> void gdImageGd(gdImagePtr im, FILE *out);
> void gdImageArc(gdImagePtr im, int cx, int cy, int w, int h, int s, int e, int color);
> void gdImageFillToBorder(gdImagePtr im, int x, int y, int border, int color);
> void gdImageFill(gdImagePtr im, int x, int y, int color);
> void gdImageCopy(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int w, int h);
> /* Stretches or shrinks to fit, as needed */
> void gdImageCopyResized(gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH);
> void gdImageSetBrush(gdImagePtr im, gdImagePtr brush);
> void gdImageSetTile(gdImagePtr im, gdImagePtr tile);
> void gdImageSetStyle(gdImagePtr im, int *style, int noOfPixels);
> /* On or off (1 or 0) */
> void gdImageInterlace(gdImagePtr im, int interlaceArg);
>
> /* Macros to access information about images. READ ONLY. Changing
> these values will NOT have the desired result. */
> #define gdImageSX(im) ((im)->sx)
> #define gdImageSY(im) ((im)->sy)
> #define gdImageColorsTotal(im) ((im)->colorsTotal)
> #define gdImageRed(im, c) ((im)->red[(c)])
> #define gdImageGreen(im, c) ((im)->green[(c)])
> #define gdImageBlue(im, c) ((im)->blue[(c)])
> #define gdImageGetTransparent(im) ((im)->transparent)
> #define gdImageGetInterlaced(im) ((im)->interlace)
> #endif
>
> --
> Brian Lavender
> http://www.brie.com/brian/

--
Mike Machado
mike@innercite.com
InnerCite
Network Specialist



This archive was generated by hypermail 2b29 : Fri Feb 25 2000 - 14:29:07 PST