GDC_INCL = . GDC_LIB = . # GDChart requires the gd library - www.boutell.com/gd/ GD_INCL = ../gd-1.8.4 GD_LIB = ../gd-1.8.4 # libgd requires libpng PNG_INCL = ../libpng-1.0.9 PNG_LIB = ../libpng-1.0.9 # libgd requires zlib # ZLIB_INCL = ../zlib-1.1.3 # ZLIB_LIB = ../zlib-1.1.3 # libgd needs libjpeg to produce JPEG images ifeq ($(HAVE_JPEG),1) JPEG_INCL = ../jpeg-6b JPEG_LIB = ../jpeg-6b JPEG_DEF = -DHAVE_JPEG JPEG_LK = -ljpeg endif LIB_PATHS = -L$(GD_LIB) # if not installed in standard paths (/lib, /usr/lib), or LD_LIBRARY_PATH # LIB_PATHS = -L$(GD_LIB) -L$(PNG_LIB) -L$(ZLIB_LIB) -L$(JPEG_LIB) # NOTE: # libpng, libz, etc. are usually linked in as dynamic libs # either use a link line similar to one of these, or set environment LD_LIBRARY_PATH # these should likely be absolute paths, as resolved at runtime # LIB_PATHS = $(LIB_PATHS) -R$(PNG_LIB) -R$(ZLIB_LIB) # LIB_PATHS = $(LIB_PATHS) -Xlinker -rpath -Xlinker $(PNG_LIB) -Xlinker -rpath -Xlinker $(ZLIB_LIB) CC=gcc -fpic -O all: gdc_samp1 gdc_samp2 gdc_pie_samp # --- compile the samples --- gdc_pie_samp.o: $(GDC_INCL)/gdc.h $(GDC_INCL)/gdcpie.h gdc_pie_samp.c $(CC) -I$(GDC_INCL) -c gdc_pie_samp.c gdc_samp1.o: $(GDC_INCL)/gdc.h $(GDC_INCL)/gdchart.h gdc_samp1.c $(CC) -I$(GDC_INCL) $(JPEG_DEF) -c gdc_samp1.c gdc_samp2.o: $(GDC_INCL)/gdc.h $(GDC_INCL)/gdchart.h gdc_samp2.c $(CC) -I$(GDC_INCL) $(JPEG_DEF) -c gdc_samp2.c # --- link the samples --- gdc_samp1: gdc.o gdchart.o price_conv.o gdc_samp1.o gifencode.o $(GD_LIB)/libgd.a $(CC) -o gdc_samp1 \ gdc.o gdchart.o price_conv.o gifencode.o \ gdc_samp1.o \ $(LIB_PATHS) \ -lgd -lz -lpng $(JPEG_LK) -lm gdc_samp2: gdc.o gdchart.o price_conv.o gdc_samp2.o gifencode.o $(GD_LIB)/libgd.a $(CC) -o gdc_samp2 \ gdc.o gdchart.o price_conv.o gifencode.o \ gdc_samp2.o \ $(LIB_PATHS) \ -lgd -lz -lpng $(JPEG_LK) -lm gdc_pie_samp: gdc.o gdc_pie.o price_conv.o gdc_pie_samp.o gifencode.o $(GD_LIB)/libgd.a $(CC) -o gdc_pie_samp \ gdc.o gdc_pie.o price_conv.o gifencode.o \ gdc_pie_samp.o \ $(LIB_PATHS) \ -lgd -lz -lpng $(JPEG_LK) -lm # --- compile the lib --- libgdchart.a: gifencode.o price_conv.o gdc.o gdc_pie.o gdchart.o ar rc $@ $? ranlib $@ gifencode.o: gifencode.c gifencode.h $(CC) -I$(GD_INCL) -c gifencode.c price_conv.o: price_conv.c $(CC) -c price_conv.c gdc.o: gdc.c $(GDC_INCL)/gdc.h $(GDC_INCL)/gifencode.h $(CC) -I$(GD_INCL) -I$(GDC_INCL) $(JPEG_DEF) -c gdc.c gdc_pie.o: $(GDC_INCL)/gdc.h $(GDC_INCL)/gifencode.h $(GDC_INCL)/gdcpie.h gdc_pie.c $(CC) -I$(GD_INCL) -I$(GDC_INCL) $(JPEG_DEF) -c gdc_pie.c gdchart.o: $(GDC_INCL)/gdc.h $(GDC_INCL)/gifencode.h $(GDC_INCL)/gdchart.h gdchart.c $(CC) -I$(GD_INCL) -I$(GDC_INCL) $(JPEG_DEF) -c gdchart.c # --- supporting libraries --- # should be compile & installed separately # $(GD_LIB)/libgd.a: # cd $(GD_LIB) ; make -f Makefile libgd.a # --- clean --- clean: rm -f *.o gdc_samp1 gdc_samp2 gdc_pie_samp libgdchart.a # cd $(GD_LIB) ; make -f Makefile clean