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

  1. # Makefile for pgm 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
  15. #CC =        gcc -ansi -pedantic -fcombine-regs -fpcc-struct-return
  16. CFLAGS =    -O3 -Zcrtdll
  17. #CFLAGS =    -g
  18. #CFLAGS =    -g -O
  19. LDFLAGS =    -s -Zcrtdll
  20. #LDFLAGS =    
  21. INSTALLBINARIES =    /usr/new/pbm
  22. INSTALLMANUALS1 =    /usr/man/man1
  23. SUFFIXMANUALS1 =    1
  24. INSTALLMANUALS3 =    /usr/man/man3
  25. SUFFIXMANUALS3 =    3
  26. INSTALLMANUALS5 =    /usr/man/man5
  27. SUFFIXMANUALS5 =    5
  28. MANCP =            cp
  29.  
  30. PBMDIR =    ../pbm
  31. INCLUDEPBM =    -I$(PBMDIR)
  32. LIBPBM =    $(PBMDIR)/libpbm.a
  33. DEFPBM =    $(PBMDIR)/pbm.h ../pbmplus.h
  34. DEFLIBPBM =    $(PBMDIR)/libpbm.h
  35.  
  36. SHELL =        /bin/sh
  37. INCLUDE =    -I.. $(INCLUDEPBM)
  38. ALLCFLAGS =    $(CFLAGS) $(INCLUDE)
  39. LIBPGM =    libpgm.a
  40. LIB=        $(LIBPGM)
  41. DEF=        libpgm.def
  42. DLL=        libpgm.dll
  43.  
  44. PORTBINARIES =    asciitopgm bioradtopgm fstopgm hipstopgm \
  45.         lispmtopgm pbmtopgm pgmbentley pgmenhance pgmhist pgmkernel \
  46.         pgmnoise pgmnorm pgmoil pgmramp pgmtofs pgmtolispm \
  47.         pgmtopbm psidtopgm spottopgm
  48. MATHBINARIES =    pgmcrater pgmedge pgmtexture rawtopgm
  49. BINARIES =    $(PORTBINARIES) $(MATHBINARIES)
  50.  
  51. OBJECTS =    asciitopgm.o bioradtopgm.o fstopgm.o hipstopgm.o \
  52.         lispmtopgm.o pbmtopgm.o pgmbentley.o pgmenhance.o pgmhist.o pgmkernel.o \
  53.         pgmnoise.o pgmnorm.o pgmoil.o pgmramp.o pgmtofs.o pgmtolispm.o \
  54.         pgmtopbm.o psidtopgm.o spottopgm.o \
  55.         rawtopgm.o pgmcrater.o pgmedge.o pgmtexture.o
  56.  
  57. MANUALS1 =    $(BINARIES)
  58. MANUALS3 =    libpgm
  59. MANUALS5 =    pgm
  60.  
  61.  
  62. all:        binaries
  63. #all:        merge
  64. #install:    install.bin
  65. install:    install.merge
  66.  
  67.  
  68. binaries:    $(BINARIES)
  69.  
  70. install.bin:    binaries
  71.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  72.     cp $(BINARIES) $(INSTALLBINARIES)
  73.  
  74.  
  75. merge:        pgmmerge
  76. pgmmerge:    pgmmerge.c $(OBJECTS) $(LIBPGM) $(LIBPBM)
  77.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(OBJECTS) -lm $(LIBPGM) $(LIBPBM)
  78.  
  79. install.merge:    install.pgmmerge
  80. install.pgmmerge:    pgmmerge
  81.     cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
  82.     cp pgmmerge $(INSTALLBINARIES)
  83.     cd $(INSTALLBINARIES) ; for i in $(BINARIES) ; do ln pgmmerge $$i ; done
  84.     rm -f $(INSTALLBINARIES)/pgmmerge
  85.  
  86.  
  87. install.man:
  88.     for i in $(MANUALS1) ; do \
  89.         rm -f $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  90.         $(MANCP) $$i.1 $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
  91.     done
  92.     for i in $(MANUALS3) ; do \
  93.         rm -f $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  94.         $(MANCP) $$i.3 $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
  95.     done
  96.     for i in $(MANUALS5) ; do \
  97.         rm -f $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  98.         $(MANCP) $$i.5 $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
  99.     done
  100.  
  101.  
  102. # Rule for plain programs.
  103. $(PORTBINARIES):    pgm.h $(DEFPBM) $(LIBPGM) $(LIBPBM)
  104.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c $(LIBPGM) $(LIBPBM)
  105.  
  106. # Rule for math-dependent programs.
  107. $(MATHBINARIES):    pgm.h $(DEFPBM) $(LIBPGM) $(LIBPBM)
  108.     $(CC) $(ALLCFLAGS) $(LDFLAGS) -o $@ $@.c -lm $(LIBPGM) $(LIBPBM)
  109.  
  110. # Rule for objects.
  111. $(OBJECTS):    pgm.h $(DEFPBM)
  112.     $(CC) $(ALLCFLAGS) "-Dmain=$*_main" -c $*.c
  113.  
  114. # And libraries.
  115. $(LIBPBM):
  116.     cd $(PBMDIR) ; make lib
  117. lib:        $(LIBPGM)
  118. $(LIBPGM):    libpgm1.o libpgm2.o
  119.     rm -f $(LIBPGM)
  120.     ar rc $(LIBPGM) libpgm1.o libpgm2.o
  121.     ar s $(LIBPGM)
  122.     emxexp -o $(LIB) >$(DEF).exports
  123.     cat $(DEF).header $(DEF).exports >$(DEF)
  124.     $(CC) -Zdll -Zcrtdll ${DEF} -o $(DLL) libpgm1.o libpgm2.o $(LIBPBM)
  125.     emximp -o $(LIB) $(DEF)
  126.  
  127.  
  128. libpgm1.o:    pgm.h $(DEFPBM) libpgm.h libpgm1.c
  129.     $(CC) $(ALLCFLAGS) -c libpgm1.c
  130. libpgm2.o:    pgm.h $(DEFPBM) libpgm.h libpgm2.c $(DEFLIBPBM)
  131.     $(CC) $(ALLCFLAGS) -c libpgm2.c
  132.  
  133. # Other dependencies.
  134. bioradtopgm bioradtopgm.o:    bioradtopgm.c
  135. asciitopgm asciitopgm.o:    asciitopgm.c
  136. fstopgm fstopgm.o:        fstopgm.c
  137. hipstopgm hipstopgm.o:        hipstopgm.c
  138. lispmtopgm lispmtopgm.o:    lispmtopgm.c
  139. pbmtopgm pbmtopgm.o:        pbmtopgm.c
  140. pgmbentley pgmbentley.o:    pgmbentley.c
  141. pgmcrater pgmcrater.o:        pgmcrater.c
  142. pgmedge pgmedge.o:        pgmedge.c
  143. pgmenhance pgmenhance.o:    pgmenhance.c
  144. pgmhist pgmhist.o:        pgmhist.c
  145. pgmkernel pgmkernel.o:        pgmkernel.c
  146. pgmnoise pgmnoise.o:        pgmnoise.c
  147. pgmnorm pgmnorm.o:        pgmnorm.c
  148. pgmoil pgmoil.o:        pgmoil.c
  149. pgmramp pgmramp.o:        pgmramp.c
  150. pgmtexture pgmtexture.o:    pgmtexture.c
  151. pgmtopbm pgmtopbm.o:        pgmtopbm.c dithers.h $(DEFPBM)
  152. pgmtofs pgmtofs.o:        pgmtofs.c
  153. pgmtolispm pgmtolispm.o:    pgmtolispm.c
  154. psidtopgm psidtopgm.o:        psidtopgm.c
  155. rawtopgm rawtopgm.o:        rawtopgm.c
  156. spottopgm spottopgm.o:        spottopgm.c
  157.  
  158. clean:
  159.     -rm -f *.o *.a *.cat *~ core $(BINARIES) pgmmerge
  160.