--- Makefile.orig Thu Feb 22 19:03:43 2001 +++ Makefile Sun Dec 16 05:57:07 2001 @@ -3,22 +3,30 @@ #If you do not have gcc, change the setting for COMPILER, 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). -COMPILER=gcc +COMPILER=${CC} #If the ar command fails on your system, consult the ar manpage #for your system. -AR=ar +#AR=ar #If you don't have FreeType, libjpeg and/or Xpm installed, including the #header files, uncomment this (default). You really must install #libpng and zlib to get anywhere if you wish to create PNG images. -CFLAGS=-O -DHAVE_LIBPNG -DHAVE_LIBJPEG +CFLAGS+=-DHAVE_LIBPNG -DHAVE_LIBJPEG -DHAVE_LIBFREETYPE #If you do have FreeType, libjpeg and/or Xpm fully installed, uncomment a #variation of this and comment out the line above. See also LIBS below. #CFLAGS=-O -DHAVE_LIBXPM -DHAVE_LIBPNG -DHAVE_LIBJPEG \ # -DHAVE_LIBFREETYPE -DHAVE_LIBTTF +.if defined(WITH_X11) +CFLAGS+=-DHAVE_XPM +.endif + +.if defined(JISX0208) +CFLAGS+=-DJISX0208 +.endif + #To use the old FreeType 1.x library, add this additional #define #to the line above #-DHAVE_LIBTTF @@ -30,7 +38,7 @@ #Some systems are very picky about link order. They don't all agree #on the right order, either. -LIBS=-lgd -lpng -lz -lm +LIBS=-lgd -lpng -lz -ljpeg -lm `$(FREETYPE_CONFIG) --libs` #If you do have FreeType, JPEG and/or Xpm fully installed, uncomment a #variation of this and comment out the line above. Note that @@ -38,6 +46,10 @@ #LIBS=-lgd -lpng -lz -ljpeg -lfreetype -lm -lttf +.if defined(WITH_X11) +LIBS+=-lXpm -lX11 +.endif + #Note: for Freetype 1.x, use DHAVE_LIBTTF and -lttf instead. #Typical install locations for freetype, zlib, xpm, libjpeg and libpng header @@ -45,7 +57,11 @@ #ensure that the version of gd you are installing is used, and not an #older release in your directory tree somewhere. -INCLUDEDIRS=-I. -I/usr/include/freetype2 -I/usr/include/X11 -I/usr/X11R6/include/X11 -I/usr/local/include +INCLUDEDIRS=-I. `$(FREETYPE_CONFIG) --cflags` -I${LOCALBASE}/include + +.if defined(WITH_X11) +INCLUDEDIRS+=-I${X11BASE}/include/X11 -I${X11BASE}/include +.endif #Typical install locations for freetype, zlib, xpm and libpng libraries. #If yours are somewhere else, other than a standard location @@ -55,16 +71,20 @@ #on your system can't cause conflicts while building a new one. #This line shouldn't hurt if you don't actually have some of the #optional libraries and directories. -LIBDIRS=-L. -L/usr/local/lib -L/usr/lib/X11 -L/usr/X11R6/lib +LIBDIRS=-L. -L${LOCALBASE}/lib -Wl,--rpath,${LOCALBASE}/lib + +.if defined(WITH_X11) +LIBDIRS+=-L${X11BASE}/lib -Wl,--rpath,${X11BASE}/lib +.endif #Location where libgd.a should be installed by "make install". -INSTALL_LIB=/usr/local/lib +INSTALL_LIB=${PREFIX}/lib #Location where .h files should be installed by "make install". -INSTALL_INCLUDE=/usr/local/include +INSTALL_INCLUDE=${PREFIX}/include/gd #Location where useful non-test programs should be installed by "make install". -INSTALL_BIN=/usr/local/bin +INSTALL_BIN=${PREFIX}/bin # # @@ -74,34 +94,43 @@ VERSION=1.8.4 -CC=$(COMPILER) $(INCLUDEDIRS) -LINK=$(CC) $(LIBDIRS) $(LIBS) +CFLAGS+=$(INCLUDEDIRS) PROGRAMS=$(BIN_PROGRAMS) $(TEST_PROGRAMS) BIN_PROGRAMS=pngtogd pngtogd2 gdtopng gd2topng gd2copypal gdparttopng webpng TEST_PROGRAMS=gdtest gddemo gd2time gdtestft gdtestttf -all: libgd.a $(PROGRAMS) +SOVER=2 + +.SUFFIXES: .c .so .o -install: libgd.a $(BIN_PROGRAMS) - sh ./install-item 644 libgd.a $(INSTALL_LIB)/libgd.a - sh ./install-item 755 pngtogd $(INSTALL_BIN)/pngtogd - sh ./install-item 755 pngtogd2 $(INSTALL_BIN)/pngtogd2 - sh ./install-item 755 gdtopng $(INSTALL_BIN)/gdtopng - sh ./install-item 755 gd2topng $(INSTALL_BIN)/gd2topng - sh ./install-item 755 gd2copypal $(INSTALL_BIN)/gd2copypal - sh ./install-item 755 gdparttopng $(INSTALL_BIN)/gdparttopng - sh ./install-item 755 webpng $(INSTALL_BIN)/webpng - sh ./install-item 755 bdftogd $(INSTALL_BIN)/bdftogd - sh ./install-item 644 gd.h $(INSTALL_INCLUDE)/gd.h - sh ./install-item 644 gdcache.h $(INSTALL_INCLUDE)/gdcache.h - sh ./install-item 644 gd_io.h $(INSTALL_INCLUDE)/gd_io.h - sh ./install-item 644 gdfontg.h $(INSTALL_INCLUDE)/gdfontg.h - sh ./install-item 644 gdfontl.h $(INSTALL_INCLUDE)/gdfontl.h - sh ./install-item 644 gdfontmb.h $(INSTALL_INCLUDE)/gdfontmb.h - sh ./install-item 644 gdfonts.h $(INSTALL_INCLUDE)/gdfonts.h - sh ./install-item 644 gdfontt.h $(INSTALL_INCLUDE)/gdfontt.h +.c.so: + $(CC) -fpic -DPIC $(CFLAGS) -o $@ -c $< + +all: libgd.a libgd.so.$(SOVER) $(PROGRAMS) + +install: libgd.a libgd.so.$(SOVER) $(BIN_PROGRAMS) + -mkdir -p $(INSTALL_LIB) $(INSTALL_INCLUDE) $(INSTALL_BIN) + ${BSD_INSTALL_DATA} libgd.a $(INSTALL_LIB)/libgd.a + ${BSD_INSTALL_DATA} libgd.so.$(SOVER) $(INSTALL_LIB)/libgd.so.$(SOVER) + -ln -sf libgd.so.$(SOVER) $(INSTALL_LIB)/libgd.so + ${BSD_INSTALL_PROGRAM} pngtogd $(INSTALL_BIN)/pngtogd + ${BSD_INSTALL_PROGRAM} pngtogd2 $(INSTALL_BIN)/pngtogd2 + ${BSD_INSTALL_PROGRAM} gdtopng $(INSTALL_BIN)/gdtopng + ${BSD_INSTALL_PROGRAM} gd2topng $(INSTALL_BIN)/gd2topng + ${BSD_INSTALL_PROGRAM} gd2copypal $(INSTALL_BIN)/gd2copypal + ${BSD_INSTALL_PROGRAM} gdparttopng $(INSTALL_BIN)/gdparttopng + ${BSD_INSTALL_PROGRAM} webpng $(INSTALL_BIN)/webpng + ${BSD_INSTALL_SCRIPT} bdftogd $(INSTALL_BIN)/bdftogd + ${BSD_INSTALL_DATA} gd.h $(INSTALL_INCLUDE)/gd.h + ${BSD_INSTALL_DATA} gdcache.h $(INSTALL_INCLUDE)/gdcache.h + ${BSD_INSTALL_DATA} gd_io.h $(INSTALL_INCLUDE)/gd_io.h + ${BSD_INSTALL_DATA} gdfontg.h $(INSTALL_INCLUDE)/gdfontg.h + ${BSD_INSTALL_DATA} gdfontl.h $(INSTALL_INCLUDE)/gdfontl.h + ${BSD_INSTALL_DATA} gdfontmb.h $(INSTALL_INCLUDE)/gdfontmb.h + ${BSD_INSTALL_DATA} gdfonts.h $(INSTALL_INCLUDE)/gdfonts.h + ${BSD_INSTALL_DATA} gdfontt.h $(INSTALL_INCLUDE)/gdfontt.h gddemo: gddemo.o libgd.a $(CC) gddemo.o -o gddemo $(LIBDIRS) $(LIBS) @@ -138,18 +167,21 @@ gdtestttf: gdtestttf.o libgd.a $(CC) --verbose gdtestttf.o -o gdtestttf $(LIBDIRS) $(LIBS) -libgd.a: gd.o gd_gd.o gd_gd2.o gd_io.o gd_io_dp.o gd_io_file.o gd_ss.o \ +OBJS= gd.o gd_gd.o gd_gd2.o gd_io.o gd_io_dp.o gd_io_file.o gd_ss.o \ gd_io_ss.o gd_png.o gd_jpeg.o gdxpm.o gdfontt.o gdfonts.o gdfontmb.o gdfontl.o \ gdfontg.o gdtables.o gdft.o gdttf.o gdcache.o gdkanji.o wbmp.o \ - gd_wbmp.o gdhelpers.o gd.h gdfontt.h gdfonts.h gdfontmb.h gdfontl.h \ + gd_wbmp.o gdhelpers.o gd_gif_in.o +INCS= gd.h gdfontt.h gdfonts.h gdfontmb.h gdfontl.h \ gdfontg.h gdhelpers.h + +libgd.a: $(INCS) $(OBJS) rm -f libgd.a - $(AR) rc libgd.a gd.o gd_gd.o gd_gd2.o gd_io.o gd_io_dp.o \ - gd_io_file.o gd_ss.o gd_io_ss.o gd_png.o gd_jpeg.o gdxpm.o \ - gdfontt.o gdfonts.o gdfontmb.o gdfontl.o gdfontg.o \ - gdtables.o gdft.o gdttf.o gdcache.o gdkanji.o wbmp.o \ - gd_wbmp.o gdhelpers.o + $(AR) rc libgd.a $(OBJS) -ranlib libgd.a + +libgd.so.$(SOVER): $(INCS) $(OBJS:.o=.so) + $(CC) -shared -Wl,-x,-soname,$@ -o $@ $(OBJS:.o=.so) $(LIBDIRS) $(LIBS) + ln -sf libgd.so.$(SOVER) libgd.so clean: rm -f *.o *.a ${PROGRAMS} test/gdtest.jpg test/gdtest.wbmp