# Makefile for pgm tools, for use with Amiga DICE # # 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) LDFLAGS = $(MPOOL) /amiga/dice_stack.o BINDIR = bin MERGE= pgmmerge # where to install the binaries, libraries and important header files INSTALLBIN = bin:pbmplus INSTALLLIB = dlib:local INSTALLINCL= dinclude:local # install which headers HEADERS= pgm.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 INCLUDE = -I/ $(INCLUDEPBM) RALLCFLAGS = $(CFLAGS) $(INCLUDE) -proto -mRR SALLCFLAGS = $(CFLAGS) $(INCLUDE) -proto MALLCFLAGS = $(CFLAGS) $(INCLUDE) -mD -mC RLIBPGM = pgmsr.lib RLLIBPGM = pgmrl.lib SLIBPGM = pgms.lib SLLIBPGM = pgml.lib DEFPGM = pgm.h DEFLIBPGM = libpgm.h LIBRARIES = $(RLIBPGM) $(RLLIBPGM) $(SLIBPGM) $(SLLIBPGM) BINS = hipstopgm lispmtopgm pgmbentley pgmedge pgmenhance \ pgmnoise pgmoil pgmramp pgmtofs pgmtolispm \ psidtopgm rawtopgm asciitopgm bioradtopgm spottopgm \ pbmtopgm MATHBINS = fstopgm pgmcrater pgmhist pgmnorm pgmtexture \ pgmtopbm pgmkernel BINARIES = $(BINS) $(MATHBINS) OBJECTS = fstopgm.om hipstopgm.om lispmtopgm.om pgmbentley.om \ pgmenhance.om pgmhist.om pgmnoise.om pgmnorm.om pgmoil.om \ pgmramp.om pgmtofs.om pgmtolispm.om pgmtopbm.om \ psidtopgm.om rawtopgm.om pgmcrater.om pgmedge.om pgmtexture.om \ asciitopgm.om bioradtopgm.om spottopgm.om pbmtopgm.om pgmkernel.om all: lib binaries bindir: -makedir $(BINDIR) binaries: lib bindir $(BINARIES) lib: $(LIBRARIES) merge: lib bindir $(MERGE) # Rules for merged binary .c.om: $(DEFPGM) $(DEFPBM) $< $(CC) -proto $(MALLCFLAGS) "-Dmain=$*_main" -c $*.c -o $*.om $(MERGE): pgmmerge.c $(OBJECTS) $(SLLIBPGM) $(SLLIBPBM) $(CC) $(MALLCFLAGS) $(LDFLAGS) -o $(BINDIR)/$@ $@.c $(OBJECTS) -l $(SLLIBPGM) -l $(SLLIBPBM) -lm #$(OBJECTS): $(DEFPGM) $(DEFPBM) # $(CC) -mD -mC $(SALLCFLAGS) "-Dmain=$*_main" -c $*.c # Rule for plain programs. $(BINS): $(DEFPGM) $(DEFPBM) $(RLIBPGM) $(RLIBPBM) $(CC) -r $(RALLCFLAGS) $(LDFLAGS) -o $(BINDIR)/$@ $@.c -l $(RLIBPGM) -l $(RLIBPBM) # Rule for math-dependent programs. $(MATHBINS): $(DEFPGM) $(DEFPBM) $(RLIBPGM) $(RLIBPBM) $(CC) -r $(RALLCFLAGS) $(LDFLAGS) -o $(BINDIR)/$@ $@.c -l $(RLIBPGM) -l $(RLIBPBM) -lm # And libraries. #$(LIBPBM): # cd $(PBMDIR) ; make lib # small data version of libpgm $(RLIBPGM): libpgm1.or libpgm2.or -delete $(RLIBPGM) join libpgm1.or libpgm2.or to $(RLIBPGM) libpgm1.or: $(DEFPGM) $(DEFPBM) $(DEFLIBPGM) libpgm1.c $(CC) -r $(RALLCFLAGS) -S -o $@ -c libpgm1.c libpgm2.or: $(DEFPGM) $(DEFPBM) $(DEFLIBPGM) libpgm2.c $(DEFLIBPBM) $(CC) -r $(RALLCFLAGS) -S -o $@ -c libpgm2.c # small data version of libpgm, not registerized (arguments on stack) $(SLIBPGM): libpgm1.os libpgm2.os -delete $(SLIBPGM) join libpgm1.os libpgm2.os to $(SLIBPGM) libpgm1.os: $(DEFPGM) $(DEFPBM) $(DEFLIBPGM) libpgm1.c $(CC) -r $(SALLCFLAGS) -S -o $@ -c libpgm1.c libpgm2.os: $(DEFPGM) $(DEFPBM) $(DEFLIBPGM) libpgm2.c $(DEFLIBPBM) $(CC) -r $(SALLCFLAGS) -S -o $@ -c libpgm2.c # large data version of libpgm $(RLLIBPGM): libpgm1.olr libpgm2.olr -delete $(RLLIBPGM) join libpgm1.olr libpgm2.olr to $(RLLIBPGM) libpgm1.olr: $(DEFPGM) $(DEFPBM) $(DEFLIBPGM) libpgm1.c $(CC) -mD $(RALLCFLAGS) -S -c libpgm1.c -o $@ libpgm2.olr: $(DEFPGM) $(DEFPBM) $(DEFLIBPGM) libpgm2.c $(DEFLIBPBM) $(CC) -mD $(RALLCFLAGS) -S -c libpgm2.c -o $@ # large data version of libpgm, not registerized (arguments on stack) $(SLLIBPGM): libpgm1.ols libpgm2.ols -delete $(SLLIBPGM) join libpgm1.ols libpgm2.ols to $(SLLIBPGM) libpgm1.ols: $(DEFPGM) $(DEFPBM) $(DEFLIBPGM) libpgm1.c $(CC) -mD $(SALLCFLAGS) -S -c libpgm1.c -o $@ libpgm2.ols: $(DEFPGM) $(DEFPBM) $(DEFLIBPGM) libpgm2.c $(DEFLIBPBM) $(CC) -mD $(SALLCFLAGS) -S -c libpgm2.c -o $@ # Other dependencies. fstopgm fstopgm.om: fstopgm.c hipstopgm hipstopgm.om: hipstopgm.c lispmtopgm lispmtopgm.om: lispmtopgm.c pgmbentley pgmbentley.om: pgmbentley.c pgmcrater pgmcrater.om: pgmcrater.c pgmedge pgmedge.om: pgmedge.c pgmenhance pgmenhance.om: pgmenhance.c pgmhist pgmhist.om: pgmhist.c pgmnoise pgmnoise.om: pgmnoise.c pgmnorm pgmnorm.om: pgmnorm.c pgmoil pgmoil.om: pgmoil.c pgmramp pgmramp.om: pgmramp.c pgmtexture pgmtexture.om: pgmtexture.c pgmtopbm pgmtopbm.om: pgmtopbm.c dithers.h $(DEFPBM) pgmtofs pgmtofs.om: pgmtofs.c pgmtolispm pgmtolispm.om: pgmtolispm.c psidtopgm psidtopgm.om: psidtopgm.c rawtopgm rawtopgm.om: rawtopgm.c asciitopgm asciitopgm.om: asciitopgm.c bioradtopgm bioradtopgm.om: bioradtopgm.c spottopgm spottopgm.om: spottopgm.c pbmtopgm pbmtopgm.om: pbmtopgm.c pgmkernel pgmkernel.om: pgmkernel.c 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"