home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Graphics / graphics-16000.iso / general / convrtrs / pbmplus / ntpbmsrc.lha / netpbm / pnm / Makefile < prev    next >
Makefile  |  1993-10-27  |  6KB  |  203 lines

  1. # Makefile for pnm tools.
  2. #
  3. # Copyright (C) 1989, 1991 by Jef Poskanzer.
  4. #
  5. # Permission to use, copy, modify, and distribute this software and its
  6. # documentation for any purpose and without fee is hereby granted, provided
  7. # that the above copyright notice appear in all copies and that both that
  8. # copyright notice and this permission notice appear in supporting
  9. # documentation.  This software is provided "as is" without express or
  10. # implied warranty.
  11.  
  12. # Default values, usually overridden by top-level Makefile.
  13. #CC =        cc
  14. CC =        gcc -ansi -pedantic -fcombine-regs -fpcc-struct-return
  15. #CFLAGS =    -O
  16. CFLAGS =    -g
  17. #CFLAGS =    -g -O
  18. TIFFDEF =    -DLIBTIFF
  19. TIFFINC =       -I../libtiff
  20. TIFFLIB =       ../libtiff/libtiff.a
  21. TIFFBINARIES =  tifftopnm pnmtotiff
  22. TIFFOBJECTS =   tifftopnm.o pnmtotiff.o
  23. #LDFLAGS =    -s
  24. LDFLAGS =    
  25. INSTALLBINARIES =    /usr/new/pbm
  26. INSTALLSCRIPTS =    $(INSTALLBINARIES)
  27. INSTALLMANUALS1 =    /usr/man/man1
  28. SUFFIXMANUALS1 =    1
  29. INSTALLMANUALS3 =    /usr/man/man3
  30. SUFFIXMANUALS3 =    3
  31. INSTALLMANUALS5 =    /usr/man/man5
  32. SUFFIXMANUALS5 =    5
  33. MANCP =            cp
  34.  
  35. PPMDIR =    ../ppm
  36. INCLUDEPPM =    -I$(PPMDIR)
  37. LIBPPM =    $(PPMDIR)/libppm.a
  38. DEFPPM =    $(PPMDIR)/ppm.h
  39. DEFLIBPPM =    $(PPMDIR)/libppm.h
  40.  
  41. PGMDIR =    ../pgm
  42. INCLUDEPGM =    -I$(PGMDIR)
  43. LIBPGM =    $(PGMDIR)/libpgm.a
  44. DEFPGM =    $(PGMDIR)/pgm.h
  45. DEFLIBPGM =    $(PGMDIR)/libpgm.h
  46.  
  47. PBMDIR =    ../pbm
  48. INCLUDEPBM =    -I$(PBMDIR)
  49. LIBPBM =    $(PBMDIR)/libpbm.a
  50. DEFPBM =    $(PBMDIR)/pbm.h ../pbmplus.h
  51. DEFLIBPBM =    $(PBMDIR)/libpbm.h
  52.  
  53. SHELL =        /bin/sh
  54. INCLUDE =    -I.. $(INCLUDEPPM) $(INCLUDEPGM) $(INCLUDEPBM)
  55. ALLCFLAGS =    $(CFLAGS) $(INCLUDE) $(TIFFDEF) $(TIFFINC)
  56. LIBPNM =    libpnm.a
  57.  
  58. PORTBINARIES =    giftopnm \
  59.         pnmarith pnmcat pnmcomp pnmconvol pnmcrop pnmcut \
  60.         pnmdepth pnmenlarge pnmfile pnmflip pnmhistmap \
  61.         pnminvert pnmnoraw pnmpad pnmpaste \
  62.         pnmtile pnmtoddif pnmtops pnmtorast \
  63.         pnmtosir pnmtoxwd \
  64.         rasttopnm sirtopnm xwdtopnm zeisstopnm
  65. MATHBINARIES =    pnmgamma pnmnlfilt pnmrotate pnmscale pnmshear
  66. BINARIES =      $(PORTBINARIES) $(MATHBINARIES) $(TIFFBINARIES)
  67. SCRIPTS =    anytopnm pnmindex pnmmargin pnmsmooth
  68.  
  69. PORTOBJECTS =    giftopnm.o \
  70.         pnmarith.o pnmcat.o pnmcomp.o pnmconvol.o pnmcrop.o pnmcut.o \
  71.         pnmdepth.o pnmenlarge.o pnmfile.o pnmflip.o pnmhistmap.o \
  72.         pnminvert.o pnmnoraw.o pnmpad.o pnmpaste.o \
  73.         pnmtile.o pnmtoddif.o pnmtops.o pnmtorast.o \
  74.         pnmtosir.o pnmtoxwd.o \
  75.         rasttopnm.o sirtopnm.o xwdtopnm.o zeisstopnm.o \
  76.         pnmgamma.o pnmnlfilt.o pnmrotate.o pnmscale.o pnmshear.o
  77. OBJECTS =    $(PORTOBJECTS) $(TIFFOBJECTS)
  78.  
  79. MANUALS1 =    $(BINARIES) $(SCRIPTS)
  80. MANUALS3 =    libpnm
  81. MANUALS5 =    pnm
  82.  
  83.  
  84. #all:        binaries
  85. all:        merge
  86. #install:    install.bin
  87. install:    install.merge
  88.  
  89.  
  90. binaries:    $(BINARIES)
  91.  
  92. install.bin:    binaries $(SCRIPTS)
  93.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  94.     cp $(BINARIES) $(INSTALLBINARIES)
  95.     cd $(INSTALLSCRIPTS) ; rm -f $(SCRIPTS)
  96.     cp $(SCRIPTS) $(INSTALLSCRIPTS)
  97.     cd $(INSTALLSCRIPTS) ; chmod +x $(SCRIPTS)
  98.  
  99.  
  100. merge:        pnmmerge
  101. pnmmerge:    pnmmerge.c $(OBJECTS) $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  102.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(OBJECTS) -lm $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM) $(TIFFLIB)
  103.  
  104. install.merge:    install.pnmmerge $(SCRIPTS)
  105. install.pnmmerge:    pnmmerge
  106.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  107.     cp pnmmerge $(INSTALLBINARIES)
  108.     cd $(INSTALLBINARIES) ; for i in $(BINARIES) ; do ln pnmmerge $$i ; done
  109.     rm -f $(INSTALLBINARIES)/pnmmerge
  110.     cd $(INSTALLSCRIPTS) ; rm -f $(SCRIPTS)
  111.     cp $(SCRIPTS) $(INSTALLSCRIPTS)
  112.     cd $(INSTALLSCRIPTS) ; chmod +x $(SCRIPTS)
  113.  
  114.  
  115. install.man:
  116.     for i in $(MANUALS1) ; do \
  117.         rm -f $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  118.         $(MANCP) $$i.1 $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  119.     done
  120.     for i in $(MANUALS3) ; do \
  121.         rm -f $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  122.         $(MANCP) $$i.3 $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  123.     done
  124.     for i in $(MANUALS5) ; do \
  125.         rm -f $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  126.         $(MANCP) $$i.5 $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  127.     done
  128.  
  129.  
  130. # Rules for plain programs.
  131. $(PORTBINARIES) $(TIFFBINARIES):    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM) $(TIFFLIB)
  132.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM) $(TIFFLIB)
  133.  
  134. # Rule for math-dependent programs.
  135. $(MATHBINARIES):        pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) $(LIBPNM) \
  136.             $(LIBPPM) $(LIBPGM) $(LIBPBM)
  137.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c -lm $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  138.  
  139. # Rule for objects.
  140. $(OBJECTS):    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM)
  141.     $(CC) $(ALLCFLAGS) "-Dmain=$*_main" -c $*.c
  142.  
  143. # And libraries.
  144. $(LIBPBM):
  145.     cd $(PBMDIR) ; make lib
  146. $(LIBPGM) FOO:
  147.     cd $(PGMDIR) ; make lib
  148. $(LIBPPM) BAR:
  149.     cd $(PPMDIR) ; make lib
  150. lib:        $(LIBPNM)
  151. $(LIBPNM):    libpnm1.o libpnm2.o libpnm3.o libpnm4.o
  152.     -rm -f $(LIBPNM)
  153.     ar rc $(LIBPNM) libpnm1.o libpnm2.o libpnm3.o libpnm4.o
  154.     -ranlib $(LIBPNM)
  155.  
  156. libpnm1.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm1.c
  157.     $(CC) $(ALLCFLAGS) -c libpnm1.c
  158. libpnm2.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm2.c $(DEFLIBPPM) \
  159.         $(DEFLIBPGM) $(DEFLIBPBM)
  160.     $(CC) $(ALLCFLAGS) -c libpnm2.c
  161. libpnm3.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm3.c $(DEFLIBPPM) \
  162.         $(DEFLIBPGM) $(DEFLIBPBM)
  163.     $(CC) $(ALLCFLAGS) -c libpnm3.c
  164. libpnm4.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) rast.h libpnm4.c
  165.     $(CC) $(ALLCFLAGS) -c libpnm4.c
  166.  
  167. # Other dependencies.
  168. giftopnm giftopnm.o:        giftopnm.c
  169. pnmarith pnmarith.o:        pnmarith.c
  170. pnmcat pnmcat.o:        pnmcat.c
  171. pnmcomp pnmcomp.o:        pnmcomp.c
  172. pnmconvol pnmconvol.o:        pnmconvol.c
  173. pnmcrop pnmcrop.o:        pnmcrop.c
  174. pnmcut pnmcut.o:        pnmcut.c
  175. pnmdepth pnmdepth.o:        pnmdepth.c
  176. pnmenlarge pnmenlarge.o:    pnmenlarge.c
  177. pnmfile pnmfile.o:        pnmfile.c
  178. pnmflip pnmflip.o:        pnmflip.c
  179. pnmgamma pnmgamma.o:        pnmgamma.c
  180. pnmhistmap pnmhistmap.o:    pnmhistmap.c
  181. pnminvert pnminvert.o:        pnminvert.c
  182. pnmnoraw pnmnoraw.o:        pnmnoraw.c
  183. pnmpad pnmpad.o:        pnmpad.c
  184. pnmpaste pnmpaste.o:        pnmpaste.c
  185. pnmrotate pnmrotate.o:        pnmrotate.c
  186. pnmscale pnmscale.o:        pnmscale.c
  187. pnmshear pnmshear.o:        pnmshear.c
  188. pnmtile pnmtile.o:        pnmtile.c
  189. pnmtoddif pnmtoddif.o:        pnmtoddif.c
  190. pnmtops pnmtops.o:        pnmtops.c
  191. pnmtosir pnmtosir.o:        pnmtosir.c
  192. pnmtorast pnmtorast.o:        pnmtorast.c rast.h
  193. pnmtotiff pnmtotiff.o:        pnmtotiff.c
  194. pnmtoxwd pnmtoxwd.o:        pnmtoxwd.c x11wd.h
  195. rasttopnm rasttopnm.o:        rasttopnm.c rast.h
  196. sirtopnm sirtopnm.o:        sirtopnm.c
  197. tifftopnm tifftopnm.o:        tifftopnm.c
  198. xwdtopnm xwdtopnm.o:        xwdtopnm.c x10wd.h x11wd.h
  199. zeisstopnm zeisstopnm.o:    zeisstopnm.c
  200.  
  201. clean:
  202.     -rm -f *.o *.a *.cat *~ core $(BINARIES) pnmmerge
  203.