home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / netpbma.zip / pnm / Makefile < prev    next >
Makefile  |  1997-04-20  |  7KB  |  215 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 =        gcc
  14. #CC =        gcc -ansi -pedantic -fcombine-regs -fpcc-struct-return
  15. CFLAGS =    -O3 -Zcrtdll
  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 =    -Zcrtdll
  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) $(TIFFINC) $(TIFFDEF)
  55. ALLCFLAGS =    $(CFLAGS) $(INCLUDE) 
  56. LIBPNM =    libpnm.a
  57. LIB=        $(LIBPNM)
  58. DEF=        libpnm.def
  59. DLL=        libpnm.dll
  60.  
  61. PORTBINARIES =    fitstopnm giftopnm \
  62.         pnmalias pnmarith pnmcat pnmcomp pnmconvol pnmcrop \
  63.         pnmcut pnmdepth pnmenlarge pnmfile pnmflip pnmhistmap \
  64.         pnminvert pnmnoraw pnmpad pnmpaste \
  65.         pnmtile pnmtoddif pnmtofits pnmtops pnmtorast \
  66.         pnmtosgi pnmtosir pnmtoxwd \
  67.         rasttopnm sgitopnm sirtopnm xwdtopnm zeisstopnm
  68. MATHBINARIES =    pnmgamma pnmnlfilt pnmrotate pnmscale pnmshear
  69. BINARIES =      $(PORTBINARIES) $(MATHBINARIES) $(TIFFBINARIES)
  70. SCRIPTS =    anytopnm pnmindex pnmmargin pnmsmooth pstopnm
  71.  
  72. PORTOBJECTS =    fitstopnm.o giftopnm.o \
  73.         pnmalias.o pnmarith.o pnmcat.o pnmcomp.o pnmconvol.o pnmcrop.o \
  74.         pnmcut.o pnmdepth.o pnmenlarge.o pnmfile.o pnmflip.o pnmhistmap.o \
  75.         pnminvert.o pnmnoraw.o pnmpad.o pnmpaste.o \
  76.         pnmtile.o pnmtoddif.o pnmtofits.o pnmtops.o pnmtorast.o \
  77.         pnmtosgi.o pnmtosir.o pnmtoxwd.o \
  78.         rasttopnm.o sgitopnm.o sirtopnm.o xwdtopnm.o zeisstopnm.o \
  79.         pnmgamma.o pnmnlfilt.o pnmrotate.o pnmscale.o pnmshear.o
  80. OBJECTS =    $(PORTOBJECTS) $(TIFFOBJECTS)
  81.  
  82. MANUALS1 =    $(BINARIES) $(SCRIPTS)
  83. MANUALS3 =    libpnm
  84. MANUALS5 =    pnm
  85.  
  86.  
  87. all:        binaries
  88. #all:        merge
  89. #install:    install.bin
  90. install:    install.merge
  91.  
  92.  
  93. binaries:    $(BINARIES)
  94.  
  95. install.bin:    binaries $(SCRIPTS)
  96.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  97.     cp $(BINARIES) $(INSTALLBINARIES)
  98.     cd $(INSTALLSCRIPTS) ; rm -f $(SCRIPTS)
  99.     cp $(SCRIPTS) $(INSTALLSCRIPTS)
  100.     cd $(INSTALLSCRIPTS) ; chmod +x $(SCRIPTS)
  101.  
  102.  
  103. merge:        pnmmerge
  104. pnmmerge:    pnmmerge.c $(OBJECTS) $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  105.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(OBJECTS) -lm $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM) $(TIFFLIB)
  106.  
  107. install.merge:    install.pnmmerge $(SCRIPTS)
  108. install.pnmmerge:    pnmmerge
  109.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  110.     cp pnmmerge $(INSTALLBINARIES)
  111.     cd $(INSTALLBINARIES) ; for i in $(BINARIES) ; do ln pnmmerge $$i ; done
  112.     rm -f $(INSTALLBINARIES)/pnmmerge
  113.     cd $(INSTALLSCRIPTS) ; rm -f $(SCRIPTS)
  114.     cp $(SCRIPTS) $(INSTALLSCRIPTS)
  115.     cd $(INSTALLSCRIPTS) ; chmod +x $(SCRIPTS)
  116.  
  117.  
  118. install.man:
  119.     for i in $(MANUALS1) ; do \
  120.         rm -f $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  121.         $(MANCP) $$i.1 $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  122.     done
  123.     for i in $(MANUALS3) ; do \
  124.         rm -f $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  125.         $(MANCP) $$i.3 $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  126.     done
  127.     for i in $(MANUALS5) ; do \
  128.         rm -f $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  129.         $(MANCP) $$i.5 $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  130.     done
  131.  
  132.  
  133. # Rules for plain programs.
  134. $(PORTBINARIES) $(TIFFBINARIES):    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM) $(TIFFLIB)
  135.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM) $(TIFFLIB)
  136.  
  137. # Rule for math-dependent programs.
  138. $(MATHBINARIES):        pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) $(LIBPNM) \
  139.             $(LIBPPM) $(LIBPGM) $(LIBPBM)
  140.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c -lm $(LIBPNM) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  141.  
  142. # Rule for objects.
  143. $(OBJECTS):    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM)
  144.     $(CC) $(ALLCFLAGS) "-Dmain=$*_main" -c $*.c
  145.  
  146. # And libraries.
  147. $(LIBPBM):
  148.     cd $(PBMDIR) ; make lib
  149. $(LIBPGM) FOO:
  150.     cd $(PGMDIR) ; make lib
  151. $(LIBPPM) BAR:
  152.     cd $(PPMDIR) ; make lib
  153. lib:        $(LIBPNM)
  154. $(LIBPNM):    libpnm1.o libpnm2.o libpnm3.o libpnm4.o
  155.     rm -f $(LIBPNM)
  156.     ar rc $(LIBPNM) libpnm1.o libpnm2.o libpnm3.o libpnm4.o
  157.     ar s $(LIBPNM)
  158.     emxexp -o $(LIB) >$(DEF).exports
  159.     cat $(DEF).header $(DEF).exports >$(DEF)
  160.     $(CC) -Zdll -Zcrtdll ${DEF} -o $(DLL) libpnm1.o libpnm2.o libpnm3.o libpnm4.o $(LIBPBM) $(LIBPGM) $(LIBPPM)
  161.     emximp -o $(LIB) $(DEF)
  162.  
  163. libpnm1.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm1.c
  164.     $(CC) $(ALLCFLAGS) -c libpnm1.c
  165. libpnm2.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm2.c $(DEFLIBPPM) \
  166.         $(DEFLIBPGM) $(DEFLIBPBM)
  167.     $(CC) $(ALLCFLAGS) -c libpnm2.c
  168. libpnm3.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm3.c $(DEFLIBPPM) \
  169.         $(DEFLIBPGM) $(DEFLIBPBM)
  170.     $(CC) $(ALLCFLAGS) -c libpnm3.c
  171. libpnm4.o:    pnm.h $(DEFPPM) $(DEFPGM) $(DEFPBM) rast.h libpnm4.c
  172.     $(CC) $(ALLCFLAGS) -c libpnm4.c
  173.  
  174. # Other dependencies.
  175. fitstopnm fitstopnm.o:        fitstopnm.c
  176. giftopnm giftopnm.o:        giftopnm.c
  177. pnmalias pnmalias.o:        pnmalias.c
  178. pnmarith pnmarith.o:        pnmarith.c
  179. pnmcat pnmcat.o:        pnmcat.c
  180. pnmcomp pnmcomp.o:        pnmcomp.c
  181. pnmconvol pnmconvol.o:        pnmconvol.c
  182. pnmcrop pnmcrop.o:        pnmcrop.c
  183. pnmcut pnmcut.o:        pnmcut.c
  184. pnmdepth pnmdepth.o:        pnmdepth.c
  185. pnmenlarge pnmenlarge.o:    pnmenlarge.c
  186. pnmfile pnmfile.o:        pnmfile.c
  187. pnmflip pnmflip.o:        pnmflip.c
  188. pnmgamma pnmgamma.o:        pnmgamma.c
  189. pnmhistmap pnmhistmap.o:    pnmhistmap.c
  190. pnminvert pnminvert.o:        pnminvert.c
  191. pnmnoraw pnmnoraw.o:        pnmnoraw.c
  192. pnmpad pnmpad.o:        pnmpad.c
  193. pnmpaste pnmpaste.o:        pnmpaste.c
  194. pnmrotate pnmrotate.o:        pnmrotate.c
  195. pnmscale pnmscale.o:        pnmscale.c
  196. pnmshear pnmshear.o:        pnmshear.c
  197. pnmtile pnmtile.o:        pnmtile.c
  198. pnmtoddif pnmtoddif.o:        pnmtoddif.c
  199. pnmtofits pnmtofits.o:        pnmtofits.c
  200. pnmtops pnmtops.o:        pnmtops.c
  201. pnmtosgi pnmtosgi.o:        pnmtosgi.c sgi.h
  202. pnmtosir pnmtosir.o:        pnmtosir.c
  203. pnmtorast pnmtorast.o:        pnmtorast.c rast.h
  204. pnmtotiff pnmtotiff.o:        pnmtotiff.c
  205. pnmtoxwd pnmtoxwd.o:        pnmtoxwd.c x11wd.h
  206. rasttopnm rasttopnm.o:        rasttopnm.c rast.h
  207. sgitopnm sgitopnm.o:        sgitopnm.c sgi.h
  208. sirtopnm sirtopnm.o:        sirtopnm.c
  209. tifftopnm tifftopnm.o:        tifftopnm.c
  210. xwdtopnm xwdtopnm.o:        xwdtopnm.c x10wd.h x11wd.h
  211. zeisstopnm zeisstopnm.o:    zeisstopnm.c
  212.  
  213. clean:
  214.     -rm -f *.o *.a *.cat *~ core $(BINARIES) pnmmerge
  215.