1CC=gcc 2# gcc 2.7.1 or better is required 3# CFLAGS= 4# CFLAGS=-g -ansi -pedantic 5 6# ----- build path ----- 7GDC_INCL=./ 8GDC_LD=./ 9GDC_LIB=libgdc.a 10 11# ----- install locations ----- 12PREFIX_INC = /usr/local/include 13PREFIX_LIB = /usr/local/lib 14 15# INCLUDEDIRS=-I. -I/usr/include/freetype2 -I/usr/include/X11 -I/usr/X11R6/include/X11 -I/usr/local/include 16 17# ----- lib gd ----- 18# GDChart requires the gd library - www.boutell.com/gd/ 19# gd 2.0.28 or better is required (GIF support has returned to libgd) 20# if it's not installed in a standard location edit these lines for your installation 21GD_INCL=/usr/local/include/ 22GD_LD=/usr/local/lib/ 23GD_LIB=libgd.so 24# a static libgd is also available 25# GD_LIB=libgd.a 26 27# ----- lib png ----- 28# libgd requires libpng 29# if it's not installed in a standard location edit these lines for your installation 30# PNG_INCL = ../libpng-1.0.8 31# PNG_LD = ../libpng-1.0.8 32 33# ----- lib z ----- 34# libgd requires zlib 35# if it's not installed in a standard location edit these lines for your installation 36# ZLIB_INCL = ../zlib-1.1.3 37# ZLIB_LD = ../zlib-1.1.3 38 39# ----- lib jpeg ----- 40# libgd optionally uses libjpeg to produce JPEG images 41# JPEG_INCL = ../libjpeg 42# JPEG_LD = ../libjpeg 43JPEG_DEF = -DHAVE_JPEG 44JPEG_LK = -ljpeg 45 46# libgd optionally uses libfreetype to use TTFs 47# FT_LD = /usr/local/lib 48FT_DEF = -DHAVE_LIBFREETYPE 49FT_LK = -lfreetype 50 51DEFS = $(FT_DEF) $(JPEG_DEF) 52LIBS = $(FT_LK) $(JPEG_LK) 53 54LIB_PATHS = -L$(GD_LD) -L$(GDC_LD) 55# if not installed in standard paths (/lib, /usr/lib), or LD_LIBRARY_PATH 56# LIB_PATHS = -L$(GD_LD) -L$(PNG_LD) -L$(ZLIB_LD) -L$(JPEG_LD) 57 58# NOTE: 59# libpng, libz, etc. are usually linked in as dynamic libs 60# either use a link line similar to one of these, or set environment LD_LIBRARY_PATH 61# these should likely be absolute paths, as resolved at runtime 62# LIB_PATHS = $(LIB_PATHS) -R$(PNG_LD) -R$(ZLIB_LD) 63# LIB_PATHS = $(LIB_PATHS) -Xlinker -rpath -Xlinker $(PNG_LD) -Xlinker -rpath -Xlinker $(ZLIB_LD) 64 65 66all: libgdc.a gdc_samp1 gdc_samp2 gdc_pie_samp ft_samp 67 68# --- compile the samples --- 69gdc_pie_samp.o: $(GDC_INCL)gdc.h $(GDC_INCL)gdcpie.h gdc_pie_samp.c 70 $(CC) $(CFLAGS) -I$(GDC_INCL) $(DEFS) -c gdc_pie_samp.c 71 72gdc_samp1.o: $(GDC_INCL)gdc.h $(GDC_INCL)gdchart.h gdc_samp1.c 73 $(CC) $(CFLAGS) -I$(GDC_INCL) $(DEFS) -c gdc_samp1.c 74 75gdc_samp2.o: $(GDC_INCL)gdc.h $(GDC_INCL)gdchart.h gdc_samp2.c 76 $(CC) $(CFLAGS) -I$(GDC_INCL) $(DEFS) -c gdc_samp2.c 77 78ft_samp.o: $(GDC_INCL)gdc.h $(GDC_INCL)gdchart.h ft_samp.c 79 $(CC) $(CFLAGS) -I$(GDC_INCL) $(DEFS) -c ft_samp.c 80 81# --- link the samples --- 82gdc_samp1: $(GDC_LD)libgdc.a gdc_samp1.o $(GD_LD)/$(GD_LIB) $(GDC_LD)/$(GDC_LIB) 83 $(CC) -o gdc_samp1 \ 84 gdc_samp1.o \ 85 $(LIB_PATHS) \ 86 -lgdc -lgd -lz -lpng $(LIBS) -lm 87 88gdc_samp2: $(GDC_LD)libgdc.a gdc_samp2.o $(GD_LD)/$(GD_LIB) $(GDC_LD)/$(GDC_LIB) 89 $(CC) -o gdc_samp2 \ 90 gdc.o gdchart.o price_conv.o \ 91 gdc_samp2.o \ 92 $(LIB_PATHS) \ 93 -lgdc -lgd -lz -lpng $(LIBS) -lm 94 95gdc_pie_samp: $(GDC_LD)libgdc.a gdc_pie_samp.o $(GD_LD)/$(GD_LIB) $(GDC_LD)/$(GDC_LIB) 96 $(CC) -o gdc_pie_samp \ 97 gdc.o gdc_pie.o price_conv.o \ 98 gdc_pie_samp.o \ 99 $(LIB_PATHS) \ 100 -lgdc -lgd -lz -lpng $(LIBS) -lm 101 102ft_samp: $(GDC_LD)libgdc.a ft_samp.o $(GD_LD)/$(GD_LIB) $(GDC_LD)/$(GDC_LIB) 103 $(CC) -o ft_samp \ 104 gdc.o gdchart.o price_conv.o \ 105 ft_samp.o \ 106 $(LIB_PATHS) \ 107 -lgdc -lgd -lz -lpng $(LIBS) -lm 108 109# --- compile the lib --- 110gdc.h: $(GD_INCL)gd.h $(GD_INCL)gdfonts.h $(GD_INCL)gdfontt.h $(GD_INCL)gdfontmb.h $(GD_INCL)gdfontg.h $(GD_INCL)gdfontl.h $(GDC_INCL)array_alloc.h 111 112price_conv.o: price_conv.c 113 $(CC) $(CFLAGS) -c price_conv.c 114 115gdc.o: gdc.c $(GDC_INCL)gdc.h 116 $(CC) $(CFLAGS) -I$(GD_INCL) -I$(GDC_INCL) $(DEFS) -c gdc.c 117 118gdc_pie.o: $(GDC_INCL)gdc.h $(GDC_INCL)gdcpie.h gdc_pie.c 119 $(CC) $(CFLAGS) -I$(GD_INCL) -I$(GDC_INCL) $(DEFS) -c gdc_pie.c 120 121gdchart.o: $(GDC_INCL)gdc.h $(GDC_INCL)gdchart.h gdchart.c 122 $(CC) $(CFLAGS) -I$(GD_INCL) -I$(GDC_INCL) $(DEFS) -c gdchart.c 123 124array_alloc.o: array_alloc.c array_alloc.h 125 $(CC) $(CFLAGS) -c array_alloc.c 126 127libgdc.a: price_conv.o gdc.o gdc_pie.o gdchart.o array_alloc.o 128 ar cr libgdc.a gdc.o gdchart.o gdc_pie.o price_conv.o array_alloc.o 129 ranlib libgdc.a 130 131# --- supporting libraries --- 132# should be compile & installed separately 133# $(GD_LD)/$(GD_LIB): 134# cd $(GD_LD) ; make -f Makefile $(GD_LIB) 135 136# ----- install ----- 137install: gdc.h gdchart.h gdcpie.h libgdc.a 138 cp gdc.h gdchart.h gdcpie.h $(PREFIX_INC)/ 139 cp libgdc.a $(PREFIX_LIB)/ 140 141# --- clean --- 142clean: 143 rm -f *.o *.a gdc_samp1 gdc_samp2 gdc_pie_samp ft_samp 144 145