home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / netpbma.zip / ppm / Makefile < prev    next >
Makefile  |  1996-11-10  |  9KB  |  246 lines

  1. # Makefile for ppm 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. LDFLAGS =    -Zcrtdll
  19. #LDFLAGS =    
  20. INSTALLBINARIES =    /usr/new/pbm
  21. INSTALLSCRIPTS =    $(INSTALLBINARIES)
  22. INSTALLMANUALS1 =    /usr/man/mann
  23. SUFFIXMANUALS1 =    1
  24. INSTALLMANUALS3 =    /usr/man/mann
  25. SUFFIXMANUALS3 =    3
  26. INSTALLMANUALS5 =    /usr/man/mann
  27. SUFFIXMANUALS5 =    5
  28. MANCP =            cp
  29.  
  30. PGMDIR =    ../pgm
  31. INCLUDEPGM =    -I$(PGMDIR)
  32. LIBPGM =    $(PGMDIR)/libpgm.a
  33. DEFPGM =    $(PGMDIR)/pgm.h
  34. DEFLIBPGM =    $(PGMDIR)/libpgm.h
  35.  
  36. PBMDIR =    ../pbm
  37. INCLUDEPBM =    -I$(PBMDIR)
  38. LIBPBM =    $(PBMDIR)/libpbm.a
  39. DEFPBM =    $(PBMDIR)/pbm.h ../pbmplus.h
  40. DEFLIBPBM =    $(PBMDIR)/libpbm.h
  41.  
  42. SHELL =        /bin/sh
  43. INCLUDE =    -I.. $(INCLUDEPGM) $(INCLUDEPBM)
  44. ALLCFLAGS =    $(CFLAGS) $(INCLUDE)
  45. LIBPPM =    libppm.a
  46. LIB=        $(LIBPPM)
  47. DEF=        libppm.def
  48. DLL=        libppm.dll
  49.  
  50. PORTBINARIES =    bmptoppm gouldtoppm hpcdtoppm ilbmtoppm imgtoppm \
  51.         mtvtoppm pcxtoppm pgmtoppm pi1toppm picttoppm \
  52.         pjtoppm \
  53.         ppm3d ppmbrighten ppmchange ppmdim ppmdist ppmdither \
  54.         ppmflash ppmhist ppmmake ppmmix ppmnorm \
  55.         ppmntsc ppmquant ppmrelief ppmshift ppmspread \
  56.         ppmtoacad \
  57.         ppmtobmp ppmtogif ppmtoicr ppmtoilbm ppmtomitsu \
  58.         ppmtopcx ppmtopgm ppmtopi1 ppmtopict ppmtopj \
  59.         ppmtopjxl ppmtopuzz ppmtorgb3 ppmtosixel \
  60.         ppmtotga ppmtouil ppmtoxpm ppmtoyuv \
  61.         ppmtoyuvsplit \
  62.         qrttoppm rawtoppm rgb3toppm sldtoppm spctoppm \
  63.         sputoppm tgatoppm ximtoppm xpmtoppm xvminitoppm \
  64.         yuvtoppm yuvsplittoppm
  65. MATHBINARIES =    ppmforge ppmpat ppmqvga ppmtomap
  66. BINARIES =    $(PORTBINARIES) $(MATHBINARIES)
  67. SCRIPTS =    ppmquantall
  68.  
  69. OBJECTS =    bmptoppm.o gouldtoppm.o hpcdtoppm.o ilbmtoppm.o imgtoppm.o \
  70.         mtvtoppm.o pcxtoppm.o pgmtoppm.o pi1toppm.o picttoppm.o \
  71.         pjtoppm.o \
  72.         ppm3d.o ppmbrighten.o ppmchange.o ppmdim.o ppmdist.o ppmdither.o \
  73.         ppmflash.o ppmhist.o ppmmake.o ppmmix.o ppmnorm.o \
  74.         ppmntsc.o ppmquant.o ppmrelief.o ppmshift.o ppmspread.o \
  75.         ppmtoacad.o \
  76.         ppmtobmp.o ppmtogif.o ppmtoicr.o ppmtoilbm.o ppmtomitsu.o \
  77.         ppmtopcx.o ppmtopgm.o ppmtopi1.o ppmtopict.o ppmtopj.o \
  78.         ppmtopjxl.o ppmtopuzz.o ppmtorgb3.o ppmtosixel.o \
  79.         ppmtotga.o ppmtouil.o ppmtoxpm.o ppmtoyuv.o \
  80.         ppmtoyuvsplit.o \
  81.         qrttoppm.o rawtoppm.o rgb3toppm.o sldtoppm.o spctoppm.o \
  82.         sputoppm.o tgatoppm.o ximtoppm.o xpmtoppm.o xvminitoppm.o \
  83.         yuvtoppm.o yuvsplittoppm.o \
  84.         ppmforge.o ppmpat.o ppmqvga.o ppmtomap.o
  85.  
  86. MANUALS1 =    $(BINARIES) $(SCRIPTS)
  87. MANUALS3 =    libppm
  88. MANUALS5 =    ppm
  89.  
  90.  
  91. all:        binaries
  92. #all:        merge
  93. #install:    install.bin
  94. install:    install.merge
  95.  
  96.  
  97. binaries:    $(BINARIES)
  98.  
  99. install.bin:    binaries $(SCRIPTS)
  100.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  101.     cp $(BINARIES) $(INSTALLBINARIES)
  102.     cd $(INSTALLSCRIPTS) ; rm -f $(SCRIPTS)
  103.     cp $(SCRIPTS) $(INSTALLSCRIPTS)
  104.     cd $(INSTALLSCRIPTS) ; chmod +x $(SCRIPTS)
  105.  
  106.  
  107. merge:        ppmmerge
  108. ppmmerge:    ppmmerge.c $(OBJECTS) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  109.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(OBJECTS) -lm $(LIBPPM) $(LIBPGM) $(LIBPBM)
  110.  
  111. install.merge:    install.ppmmerge $(SCRIPTS)
  112. install.ppmmerge:    ppmmerge
  113.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  114.     cp ppmmerge $(INSTALLBINARIES)
  115.     cd $(INSTALLBINARIES) ; for i in $(BINARIES) ; do ln ppmmerge $$i ; done
  116.     rm -f $(INSTALLBINARIES)/ppmmerge
  117.     cd $(INSTALLSCRIPTS) ; rm -f $(SCRIPTS)
  118.     cp $(SCRIPTS) $(INSTALLSCRIPTS)
  119.     cd $(INSTALLSCRIPTS) ; chmod +x $(SCRIPTS)
  120.  
  121.  
  122. install.man:
  123.     for i in $(MANUALS1) ; do \
  124.         rm -f $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  125.         $(MANCP) $$i.1 $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  126.     done
  127.     for i in $(MANUALS3) ; do \
  128.         rm -f $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  129.         $(MANCP) $$i.3 $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  130.     done
  131.     for i in $(MANUALS5) ; do \
  132.         rm -f $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  133.         $(MANCP) $$i.5 $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  134.     done
  135.  
  136.  
  137. # Rule for plain programs.
  138. $(PORTBINARIES):    ppm.h $(DEFPGM) $(DEFPBM) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  139.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(LIBPPM) $(LIBPGM) $(LIBPBM)
  140.  
  141. # Rule for math-dependent programs.
  142. $(MATHBINARIES):    ppm.h $(DEFPGM) $(DEFPBM) $(LIBPPM) $(LIBPGM) $(LIBPBM)
  143.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c -lm $(LIBPPM) $(LIBPGM) $(LIBPBM)
  144.  
  145. # Rule for objects.
  146. $(OBJECTS):    ppm.h $(DEFPGM) $(DEFPBM)
  147.     $(CC) $(ALLCFLAGS) "-Dmain=$*_main" -c $*.c
  148.  
  149. # And libraries.
  150. $(LIBPBM):
  151.     cd $(PBMDIR) ; make lib
  152. $(LIBPGM):
  153.     cd $(PGMDIR) ; make lib
  154. lib:        $(LIBPPM)
  155. $(LIBPPM):    libppm1.o libppm2.o libppm3.o libppm4.o libppm5.o bitio.o
  156.     rm -f $(LIBPPM)
  157.     ar rc $(LIBPPM) libppm1.o libppm2.o libppm3.o libppm4.o\
  158.     libppm5.o bitio.o
  159.     ar s $(LIBPPM)
  160.     emxexp -o $(LIB) >$(DEF).exports
  161.     cat $(DEF).header $(DEF).exports >$(DEF)
  162.     $(CC) -Zdll -Zcrtdll ${DEF} -o $(DLL) libppm1.o libppm2.o libppm3.o libppm4.o libppm5.o bitio.o $(LIBPBM) $(LIBPGM)
  163.     emximp -o $(LIB) $(DEF)
  164.  
  165. libppm1.o:    ppm.h $(DEFPGM) $(DEFPBM) libppm.h libppm1.c
  166.     $(CC) $(ALLCFLAGS) -c libppm1.c
  167. libppm2.o:    ppm.h $(DEFPGM) $(DEFPBM) libppm.h libppm2.c $(DEFLIBPGM) \
  168.         $(DEFLIBPBM)
  169.     $(CC) $(ALLCFLAGS) -c libppm2.c
  170. libppm3.o:    ppm.h $(DEFPGM) $(DEFPBM) ppmcmap.h libppm.h libppm3.c
  171.     $(CC) $(ALLCFLAGS) -c libppm3.c
  172. libppm4.o:    ppm.h $(DEFPGM) $(DEFPBM) libppm4.c
  173.     $(CC) $(ALLCFLAGS) -c libppm4.c
  174. libppm5.o:    ppm.h $(DEFPGM) $(DEFPBM) ppmdraw.h libppm5.c
  175.     $(CC) $(ALLCFLAGS) -c libppm5.c
  176. bitio.o:    ../pbmplus.h bitio.c
  177.     $(CC) $(ALLCFLAGS) -c bitio.c
  178.  
  179. # Other dependencies.
  180. bmptoppm bmptoppm.o:        bmptoppm.c bitio.o bitio.h bmp.h
  181. gouldtoppm gouldtoppm.o:    gouldtoppm.c
  182. hpcdtoppm hpcdtoppm.o:        hpcdtoppm.c
  183. ilbmtoppm ilbmtoppm.o:        ilbmtoppm.c ilbm.h
  184. imgtoppm imgtoppm.o:        imgtoppm.c
  185. mtvtoppm mtvtoppm.o:        mtvtoppm.c
  186. pcxtoppm pcxtoppm.o:        pcxtoppm.c
  187. pgmtoppm pgmtoppm.o:        pgmtoppm.c
  188. pi1toppm pi1toppm.o:        pi1toppm.c
  189. picttoppm picttoppm.o:        picttoppm.c
  190. pjtoppm pjtoppm.o:        pjtoppm.c
  191. ppm3d ppm3d.o:            ppm3d.c
  192. ppmbrighten ppmbrighten.o:    ppmbrighten.c
  193. ppmchange ppmchange.o:        ppmchange.c
  194. ppmdim ppmdim.o:        ppmdim.c
  195. ppmdist ppmdist.o:        ppmdist.c ppmcmap.h
  196. ppmdither ppmdither.o:        ppmdither.c
  197. ppmflash ppmflash.o:        ppmflash.c
  198. ppmforge ppmforge.o:        ppmforge.c
  199. ppmhist ppmhist.o:        ppmhist.c ppmcmap.h
  200. ppmmake ppmmake.o:        ppmmake.c
  201. ppmmix ppmmix.o:        ppmmix.c
  202. ppmnorm ppmnorm.o:        ppmnorm.c lum.h
  203. ppmntsc ppmntsc.o:        ppmntsc.c
  204. ppmpat ppmpat.o:        ppmpat.c ppmdraw.h
  205. ppmquant ppmquant.o:        ppmquant.c $(PGMDIR)/dithers.h ppmcmap.h
  206. ppmqvga ppmqvga.o:        ppmqvga.c
  207. ppmrelief ppmrelief.o:        ppmrelief.c
  208. ppmshift ppmshift.o:        ppmshift.c
  209. ppmspread ppmspread.o:        ppmspread.c
  210. ppmtoacad ppmtoacad.o:        ppmtoacad.c ppmcmap.h autocad.h
  211. ppmtobmp ppmtobmp.o:        ppmtobmp.c bitio.h bmp.h
  212. ppmtogif ppmtogif.o:        ppmtogif.c ppmcmap.h
  213. ppmtoicr ppmtoicr.o:        ppmtoicr.c ppmcmap.h
  214. ppmtoilbm ppmtoilbm.o:        ppmtoilbm.c ilbm.h ppmcmap.h
  215. ppmtomitsu ppmtomitsu.o:    ppmtomitsu.c ppmcmap.h mitsu.h
  216. ppmtomap ppmtomap.o:        ppmtomap.c ppmcmap.h
  217. ppmtopcx ppmtopcx.o:        ppmtopcx.c ppmcmap.h
  218. ppmtopgm ppmtopgm.o:        ppmtopgm.c
  219. ppmtopi1 ppmtopi1.o:        ppmtopi1.c ppmcmap.h
  220. ppmtopict ppmtopict.o:        ppmtopict.c ppmcmap.h
  221. ppmtopj ppmtopj.o:        ppmtopj.c
  222. ppmtopjxl ppmtopjxl.o:        ppmtopjxl.c ppmcmap.h
  223. ppmtopuzz ppmtopuzz.o:        ppmtopuzz.c ppmcmap.h
  224. ppmtorgb3 ppmtorgb3.o:        ppmtorgb3.c
  225. ppmtosixel ppmtosixel.o:    ppmtosixel.c ppmcmap.h
  226. ppmtotga ppmtotga.o:        ppmtotga.c ppmcmap.h
  227. ppmtouil ppmtouil.o:        ppmtouil.c ppmcmap.h
  228. ppmtoxpm ppmtoxpm.o:        ppmtoxpm.c ppmcmap.h
  229. ppmtoyuv ppmtoyuv.o:        ppmtoyuv.c
  230. ppmtoyuvsplit ppmtoyuvsplit.o:    ppmtoyuvsplit.c
  231. qrttoppm qrttoppm.o:        qrttoppm.c
  232. rawtoppm rawtoppm.o:        rawtoppm.c
  233. rgb3toppm rgb3toppm.o:        rgb3toppm.c
  234. sldtoppm sldtoppm.o:        sldtoppm.c ppmdraw.h autocad.h
  235. spctoppm spctoppm.o:        spctoppm.c
  236. sputoppm sputoppm.o:        sputoppm.c
  237. tgatoppm tgatoppm.o:        tgatoppm.c tga.h
  238. ximtoppm ximtoppm.o:        ximtoppm.c xim.h
  239. xpmtoppm xpmtoppm.o:        xpmtoppm.c
  240. xvminitoppm xvminitoppm.o:    xvminitoppm.c
  241. yuvtoppm yuvtoppm.o:        yuvtoppm.c
  242. yuvsplittoppm yuvsplittoppm.o:    yuvsplittoppm.c
  243.  
  244. clean:
  245.     -rm -f *.o *.a *.cat *~ core $(BINARIES) ppmmerge
  246.