# Makefile for pnm tools. # # Copyright (C) 1989, 1991 by Jef Poskanzer. # Modified for Amiga DICE by Ingo Wilken (Ingo.Wilken@informatik.uni-oldenburg.de) # # Permission to use, copy, modify, and distribute this software and its # documentation for any purpose and without fee is hereby granted, provided # that the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation. This software is provided "as is" without express or # implied warranty. # CONFIG: generate executable with debugging information #DEBUG = -s -d1 # CONFIG: use memory pools #MPOOL = -L/amiga -l mpool CC = dcc CFLAGS = -E DCC_ERRORS -ms -mu -gs $(DEBUG) TIFFDEF = -DLIBTIFF LDFLAGS = $(MPOOL) /amiga/dice_stack.o BINDIR = bin MERGE = pnmmerge # where to install the binaries, libraries and important header files INSTALLBIN = bin:pbmplus INSTALLLIB = dlib:local INSTALLINCL= dinclude:local # install which headers HEADERS= pnm.h /pbmplus.h PBMDIR = /pbm INCLUDEPBM = -I$(PBMDIR) RLIBPBM = $(PBMDIR)/pbmsr.lib RLLIBPBM = $(PBMDIR)/pbmrl.lib SLIBPBM = $(PBMDIR)/pbms.lib SLLIBPBM = $(PBMDIR)/pbml.lib DEFPBM = $(PBMDIR)/pbm.h /pbmplus.h DEFLIBPBM = $(PBMDIR)/libpbm.h PGMDIR = /pgm INCLUDEPGM = -I$(PGMDIR) RLIBPGM = $(PGMDIR)/pgmsr.lib RLLIBPGM = $(PGMDIR)/pgmrl.lib SLIBPGM = $(PGMDIR)/pgms.lib SLLIBPGM = $(PGMDIR)/pgml.lib DEFPGM = $(PGMDIR)/pgm.h DEFLIBPGM = $(PGMDIR)/libpgm.h PPMDIR = /ppm INCLUDEPPM = -I$(PPMDIR) RLIBPPM = $(PPMDIR)/ppmsr.lib RLLIBPPM = $(PPMDIR)/ppmrl.lib SLIBPPM = $(PPMDIR)/ppms.lib SLLIBPPM = $(PPMDIR)/ppml.lib DEFPPM = $(PPMDIR)/ppm.h DEFLIBPPM = $(PPMDIR)/libppm.h TIFFDIR = /libtiff TIFFINC = -I$(TIFFDIR) TIFFLIB = $(TIFFDIR)/libtiff.lib INCLUDE = -I/ $(INCLUDEPPM) $(INCLUDEPGM) $(INCLUDEPBM) RALLCFLAGS = $(CFLAGS) $(INCLUDE) $(TIFFDEF) $(TIFFINC) -proto -mRR SALLCFLAGS = $(CFLAGS) $(INCLUDE) $(TIFFDEF) $(TIFFINC) -proto MALLCFLAGS = $(CFLAGS) $(INCLUDE) $(TIFFDEF) $(TIFFINC) -mC -mD DEFPNM = pnm.h #DEFLIBPNM = libpnm.h RLIBPNM = pnmsr.lib RLLIBPNM = pnmrl.lib SLIBPNM = pnms.lib SLLIBPNM = pnml.lib LIBRARIES = $(RLIBPNM) $(RLLIBPNM) $(SLIBPNM) $(SLLIBPNM) BINS = pnmarith pnmcat pnmconvol pnmcrop pnmcut \ pnmdepth pnmenlarge pnmfile pnmflip pnmgamma pnmhistmap \ pnminvert pnmnoraw pnmpaste pnmtile \ pnmtoddif pnmtorast pnmtoxwd rasttopnm xwdtopnm \ pnmcomp zeisstopnm pnmpad pnmtosir sirtopnm \ sgitopnm pnmtosgi MATHBINS = pnmrotate pnmscale pnmshear pnmtops \ pnmnlfilt fitstopnm pnmalias pnmtofits LMATHBINS = giftopnm TIFFBINS = tifftopnm pnmtotiff BINARIES = $(BINS) $(MATHBINS) $(TIFFBINS) $(LMATHBINS) SCRIPTS = anytopnm pnmindex pnmmargin pnmsmooth pstopnm OBJS = pnmarith.om pnmcat.om pnmconvol.om pnmcrop.om pnmcut.om \ pnmdepth.om pnmenlarge.om pnmfile.om pnmflip.om pnmhistmap.om \ pnminvert.om pnmnoraw.om pnmpaste.om pnmscale.om pnmtile.om \ pnmtoddif.om pnmtops.om pnmtorast.om pnmtoxwd.om rasttopnm.om \ xwdtopnm.om pnmgamma.om pnmrotate.om pnmshear.om pnmcomp.om \ zeisstopnm.om pnmnlfilt.om pnmpad.om pnmtosir.om sirtopnm.om \ giftopnm.om fitstopnm.om pnmalias.om pnmtofits.om \ sgitopnm.om pnmtosgi.om TIFFOBJECTS = tifftopnm.om pnmtotiff.om OBJECTS = $(OBJS) $(TIFFOBJECTS) all: lib binaries bindir: -makedir $(BINDIR) binaries: lib bindir $(BINARIES) lib: $(LIBRARIES) merge: $(SLLIBPNM) bindir $(MERGE) # Rules for merged binary .c.om: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) $< $(CC) -proto $(MALLCFLAGS) "-Dmain=$*_main" -c $*.c -o $*.om $(MERGE): pnmmerge.c $(OBJECTS) $(SLLIBPNM) $(SLLIBPPM) $(SLLIBPGM) $(SLLIBPBM) $(TIFFLIB) $(CC) $(MALLCFLAGS) $(LDFLAGS) -o $(BINDIR)/$@ $@.c $(OBJECTS) -l $(SLLIBPNM) -l $(SLLIBPPM) -l $(SLLIBPGM) -l $(SLLIBPBM) -l $(TIFFLIB) -lm # Rule for objects. #$(OBJECTS): $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) # $(CC) -mD -mC $(SALLCFLAGS) -c $*.c "-Dmain=$*_main" # Rules for plain programs. $(BINS): $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) $(RLIBPNM) $(RLIBPPM) $(RLIBPGM) $(RLIBPBM) $(CC) -r $(RALLCFLAGS) $(LDFLAGS) -o $(BINDIR)/$@ $@.c -l $(RLIBPNM) -l $(RLIBPPM) -l $(RLIBPGM) -l $(RLIBPBM) # Rule for math-dependent programs. $(MATHBINS): $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) $(RLIBPNM) $(RLIBPPM) $(RLIBPGM) $(RLIBPBM) $(CC) -r $(RALLCFLAGS) $(LDFLAGS) -o $(BINDIR)/$@ $@.c -l $(RLIBPNM) -l $(RLIBPPM) -l $(RLIBPGM) -l $(RLIBPBM) -lm $(LMATHBINS): $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) $(RLLIBPNM) $(RLLIBPPM) $(RLLIBPGM) $(RLLIBPBM) $(CC) -mD -mC $(RALLCFLAGS) $(LDFLAGS) -o $(BINDIR)/$@ $@.c -l $(RLLIBPNM) -l $(RLLIBPPM) -l $(RLLIBPGM) -l $(RLLIBPBM) -lm # Rules for TIFF programs. $(TIFFBINS): $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) $(SLLIBPNM) $(SLLIBPPM) $(SLLIBPGM) $(SLLIBPBM) $(TIFFLIB) $(CC) -mD -mC $(SALLCFLAGS) $(LDFLAGS) $@.c -o $(BINDIR)/$@ -l $(SLLIBPNM) -l $(SLLIBPPM) -l $(SLLIBPGM) -l $(SLLIBPBM) -l $(TIFFLIB) -lm # And libraries. #$(LIBPBM): # cd $(PBMDIR) ; make lib #$(LIBPGM) FOO: # cd $(PGMDIR) ; make lib #$(LIBPPM) BAR: # cd $(PPMDIR) ; make lib # small data version $(RLIBPNM): libpnm1.or libpnm2.or libpnm3.or libpnm4.or -delete $(RLIBPNM) join libpnm1.or libpnm2.or libpnm3.or libpnm4.or to $(RLIBPNM) libpnm1.or: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm1.c $(CC) -r $(RALLCFLAGS) -S -o $@ -c libpnm1.c libpnm2.or: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm2.c $(DEFLIBPPM) $(DEFLIBPGM) $(DEFLIBPBM) $(CC) -r $(RALLCFLAGS) -S -o $@ -c libpnm2.c libpnm3.or: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm3.c $(DEFLIBPPM) $(DEFLIBPGM) $(DEFLIBPBM) $(CC) -r $(RALLCFLAGS) -S -o $@ -c libpnm3.c libpnm4.or: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) rast.h libpnm4.c $(CC) -r $(RALLCFLAGS) -S -o $@ -c libpnm4.c # small data version, not registerized (arguments on stack) $(SLIBPNM): libpnm1.os libpnm2.os libpnm3.os libpnm4.os -delete $(SLIBPNM) join libpnm1.os libpnm2.os libpnm3.os libpnm4.os to $(SLIBPNM) libpnm1.os: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm1.c $(CC) -r $(SALLCFLAGS) -S -o $@ -c libpnm1.c libpnm2.os: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm2.c $(DEFLIBPPM) $(DEFLIBPGM) $(DEFLIBPBM) $(CC) -r $(SALLCFLAGS) -S -o $@ -c libpnm2.c libpnm3.os: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm3.c $(DEFLIBPPM) $(DEFLIBPGM) $(DEFLIBPBM) $(CC) -r $(SALLCFLAGS) -S -o $@ -c libpnm3.c libpnm4.os: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) rast.h libpnm4.c $(CC) -r $(SALLCFLAGS) -S -o $@ -c libpnm4.c # large data version $(RLLIBPNM): libpnm1.olr libpnm2.olr libpnm3.olr libpnm4.olr -delete $(RLLIBPNM) join libpnm1.olr libpnm2.olr libpnm3.olr libpnm4.olr to $(RLLIBPNM) libpnm1.olr: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm1.c $(CC) -mD $(RALLCFLAGS) -S -o $@ -c libpnm1.c libpnm2.olr: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm2.c $(DEFLIBPPM) $(DEFLIBPGM) $(DEFLIBPBM) $(CC) -mD $(RALLCFLAGS) -S -o $@ -c libpnm2.c libpnm3.olr: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm3.c $(DEFLIBPPM) $(DEFLIBPGM) $(DEFLIBPBM) $(CC) -mD $(RALLCFLAGS) -S -o $@ -c libpnm3.c libpnm4.olr: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) rast.h libpnm4.c $(CC) -mD $(RALLCFLAGS) -S -o $@ -c libpnm4.c # large data version, not registerized (arguments on stack) $(SLLIBPNM): libpnm1.ols libpnm2.ols libpnm3.ols libpnm4.ols -delete $(SLLIBPNM) join libpnm1.ols libpnm2.ols libpnm3.ols libpnm4.ols to $(SLLIBPNM) libpnm1.ols: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm1.c $(CC) -mD $(SALLCFLAGS) -S -o $@ -c libpnm1.c libpnm2.ols: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm2.c $(DEFLIBPPM) $(DEFLIBPGM) $(DEFLIBPBM) $(CC) -mD $(SALLCFLAGS) -S -o $@ -c libpnm2.c libpnm3.ols: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) libpnm3.c $(DEFLIBPPM) $(DEFLIBPGM) $(DEFLIBPBM) $(CC) -mD $(SALLCFLAGS) -S -o $@ -c libpnm3.c libpnm4.ols: $(DEFPNM) $(DEFPPM) $(DEFPGM) $(DEFPBM) rast.h libpnm4.c $(CC) -mD $(SALLCFLAGS) -S -o $@ -c libpnm4.c # Other dependencies. pnmarith pnmarith.om: pnmarith.c pnmcat pnmcat.om: pnmcat.c pnmconvol pnmconvol.om: pnmconvol.c pnmcrop pnmcrop.om: pnmcrop.c pnmcut pnmcut.om: pnmcut.c pnmdepth pnmdepth.om: pnmdepth.c pnmenlarge pnmenlarge.om: pnmenlarge.c pnmfile pnmfile.om: pnmfile.c pnmflip pnmflip.om: pnmflip.c pnmgamma pnmgamma.om: pnmgamma.c pnminvert pnminvert.om: pnminvert.c pnmhistmap pnmhistmao.om: pnmhistmap.c pnmnoraw pnmnoraw.om: pnmnoraw.c pnmpaste pnmpaste.om: pnmpaste.c pnmrotate pnmrotate.om: pnmrotate.c pnmscale pnmscale.om: pnmscale.c pnmshear pnmshear.om: pnmshear.c pnmtile pnmtile.om: pnmtile.c pnmtoddif pnmtoddif.om: pnmtoddif.c pnmtops pnmtops.om: pnmtops.c pnmtorast pnmtorast.om: pnmtorast.c rast.h pnmtotiff pnmtotiff.om: pnmtotiff.c pnmtoxwd pnmtoxwd.om: pnmtoxwd.c x11wd.h rasttopnm rasttopnm.om: rasttopnm.c rast.h tifftopnm tifftopnm.om: tifftopnm.c xwdtopnm xwdtopnm.om: xwdtopnm.c x10wd.h x11wd.h pnmcomp pnmcomp.om: pnmcomp.c zeisstopnm zeisstopnm.om: zeisstopnm.c pnmnlfilt pnmnlfilt.om: pnmnlfilt.c pnmpad pnmpad.om: pnmpad.c zeisstopnm zeisstopnm.om: zeisstopnm.c pnmtosir pnmtosir.om: pnmtosir.c sirtopnm sirtopnm.om: sirtopnm.c giftopnm giftopnm.om: giftopnm.c fitstopnm fitstopnm.om: fitstopnm.c pnmalias pnmalias.om: pnmalias.c pnmtofits pnmtofits.om: pnmtofits.c sgitopnm sgitopnm.om: sgitopnm.c sgi.h pnmtosgi pnmtosgi.om: pnmtosgi.c sgi.h clean: -delete \#?.om \#?.os \#?.or \#?.ols \#?.olr DCC_ERRORS cleanall: clean -delete \#?.lib -delete $(BINDIR) all installlib: lib copy $(LIBRARIES) to $(INSTALLLIB) copy $(HEADERS) to $(INSTALLINCL) installbin: binaries copy $(BINDIR) all to $(INSTALLBIN) installall: installlib installbin install: @echo "Please select: installlib, installbin, installall"