!include <ntwin32.MAK>
# Makefile for pbm tools.
#
# Copyright (C) 1989, 1991 by Jef Poskanzer.
#
# 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.

# Default values, usually overridden by top-level Makefile.
#CC = claxp
#CC = $(cc)
#CC =		gcc -ansi -pedantic -fcombine-regs -fpcc-struct-return
CFLAGS = $(cvarsdll) $(cflags) $(cdebug) -I.. -D__STDC__
#CFLAGS =	-O
#CFLAGS =	-g
#CFLAGS =	-g -O
#CFLAGS = $(DEFS) $(cflags) $(cvars) $(cdebug)
TIFFDEF =       -DLIBTIFF
#LDFLAGS =	-s
LDFLAGS =	
INSTALLBINARIES =	/usr/new/pbm
INSTALLMANUALS1 =	/usr/man/man1
SUFFIXMANUALS1 =	1
INSTALLMANUALS3 =	/usr/man/man3
SUFFIXMANUALS3 =	3
INSTALLMANUALS5 =	/usr/man/man5
SUFFIXMANUALS5 =	5
MANCP =			cp

SHELL =		/bin/sh
#INCLUDE =	-I..
ALLCFLAGS =	$(CFLAGS) $(TIFFDEF) # $(INCLUDE)
LIBPBM =	pbm.lib
DEFPBM =	pbm.h ../pbmplus.h

PORTBINARIES =	atktopbm.exe brushtopbm.exe cmuwmtopbm.exe g3topbm.exe \
		icontopbm.exe gemtopbm.exe macptopbm.exe mgrtopbm.exe \
		pbmclean.exe pbmlife.exe pbmmake.exe pbmmask.exe pbmpscale.exe \
		pbmreduce.exe pbmtext.exe \
		pbmto10x.exe pbmto4425.exe pbmtoascii.exe pbmtoatk.exe \
		pbmtobbnbg.exe pbmtocmuwm.exe \
		pbmtoepsi.exe pbmtoepson.exe \
		pbmtog3.exe pbmtogem.exe pbmtogo.exe pbmtoicon.exe pbmtolj.exe \
		pbmtoln03.exe pbmtolps.exe pbmtomacp.exe pbmtomgr.exe \
		pbmtopi3.exe pbmtoplot.exe pbmtoptx.exe \
		pbmtox10bm.exe pbmtoxbm.exe pbmtoybm.exe pbmtozinc.exe \
		pbmupc.exe pi3topbm.exe pktopbm.exe xbmtopbm.exe ybmtopbm.exe
MATHBINARIES =	pbmtopk.exe
BINARIES =	$(PORTBINARIES) $(MATHBINARIES)

OBJECTS =	atktopbm.obj brushtopbm.obj cmuwmtopbm.obj g3topbm.obj \
		icontopbm.obj gemtopbm.obj macptopbm.obj mgrtopbm.obj \
		pbmclean.obj pbmlife.obj pbmmake.obj pbmmask.obj pbmpscale.obj \
		pbmreduce.obj pbmtext.obj \
		pbmto10x.obj pbmto4425.obj pbmtoascii.obj pbmtoatk.obj \
		pbmtobbnbg.obj pbmtocmuwm.obj \
		pbmtoepsi.obj pbmtoepson.obj \
		pbmtog3.obj pbmtogem.obj pbmtogo.obj pbmtoicon.obj pbmtolj.obj \
		pbmtoln03.obj pbmtolps.obj pbmtomacp.obj pbmtomgr.obj \
		pbmtopi3.obj pbmtoplot.obj pbmtoptx.obj \
		pbmtox10bm.obj pbmtoxbm.obj pbmtoybm.obj pbmtozinc.obj \
		pbmupc.obj pi3topbm.obj pktopbm.obj xbmtopbm.obj ybmtopbm.obj \
		pbmtopk.obj

MANUALS1 =	$(BINARIES)
MANUALS3 =	libpbm
MANUALS5 =	pbm


#all:		binaries
all:		merge
#install:	install.bin
install:	install.merge


binaries:	$(BINARIES)

install.bin:	binaries
	cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
	cp $(BINARIES) $(INSTALLBINARIES)


merge:		pbmmerge
pbmmerge:	pbmmerge.c $(OBJECTS) $(LIBPBM)
	$(CC) $(ALLCFLAGS) $(LDFLAGS) $@.c $(OBJECTS) $(LIBPBM) $(conlibs)

install.merge:	install.pbmmerge
install.pbmmerge:	pbmmerge
	cd $(INSTALLBINARIES) ; rm -f $(BINARIES)
	cp pbmmerge $(INSTALLBINARIES)
	cd $(INSTALLBINARIES) ; for i in $(BINARIES) ; do ln pbmmerge $$i ; done
	rm -f $(INSTALLBINARIES)/pbmmerge


install.man:
	for i in $(MANUALS1) ; do \
	    rm -f $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
	    $(MANCP) $$i.1 $(INSTALLMANUALS1)/$$i.$(SUFFIXMANUALS1) ; \
	done
	for i in $(MANUALS3) ; do \
	    rm -f $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
	    $(MANCP) $$i.3 $(INSTALLMANUALS3)/$$i.$(SUFFIXMANUALS3) ; \
	done
	for i in $(MANUALS5) ; do \
	    rm -f $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
	    $(MANCP) $$i.5 $(INSTALLMANUALS5)/$$i.$(SUFFIXMANUALS5) ; \
	done

# Rule for plain programs.
$(PORTBINARIES):	$(DEFPBM) $(LIBPBM)
	$(CC) $(ALLCFLAGS) $(LDFLAGS) $*.c $(LIBPBM) $(conlibsdll)

# Rule for math-dependent programs.
$(MATHBINARIES):	$(DEFPBM) $(LIBPBM)
	$(CC) $(ALLCFLAGS) $(LDFLAGS) $*.c $(LIBPBM) $(conlibsdll)

# Rule for objects.
$(OBJECTS):	$(DEFPBM)
	$(CC) $(ALLCFLAGS) "-Dmain=$*_main" -c $*.c

# And library.
#lib:		$(LIBPBM)
#$(LIBPBM):	libpbm1.obj libpbm2.obj libpbm3.obj libpbm4.obj libpbm5.obj
#	-rm -f $(LIBPBM)
#	ar rc $(LIBPBM) libpbm1.obj libpbm2.obj libpbm3.obj libpbm4.obj libpbm5.obj
#	-ranlib $(LIBPBM)

lib:	$(LIBPBM)
$(LIBPBM):	libpbm1.obj libpbm2.obj libpbm3.obj libpbm4.obj libpbm5.obj
	-rm -f $(LIBPBM)
	$(implib) -out:pbm.lib libpbm1.obj libpbm2.obj libpbm3.obj libpbm4.obj libpbm5.obj

libpbm1.obj:	$(DEFPBM) ../version.h ../compile.h libpbm.h libpbm1.c
	$(CC) $(ALLCFLAGS) -c libpbm1.c
libpbm2.obj:	$(DEFPBM) libpbm.h libpbm2.c
	$(CC) $(ALLCFLAGS) -c libpbm2.c
libpbm3.obj:	$(DEFPBM) libpbm.h libpbm3.c
	$(CC) $(ALLCFLAGS) -c libpbm3.c
libpbm4.obj:	$(DEFPBM) libpbm.h libpbm4.c
	$(CC) $(ALLCFLAGS) -c libpbm4.c
libpbm5.obj:	$(DEFPBM) pbmfont.h libpbm5.c
	$(CC) $(ALLCFLAGS) -c libpbm5.c

# Other dependencies.
atktopbm.exe atktopbm.obj:		atktopbm.c
brushtopbm.exe brushtopbm.obj:	brushtopbm.c
cmuwmtopbm.exe cmuwmtopbm.obj:	cmuwmtopbm.c cmuwm.h
g3topbm.exe g3topbm.obj:		g3topbm.c g3.h
icontopbm.exe icontopbm.obj:		icontopbm.c
gemtopbm.exe gemtopbm.obj:		gemtopbm.c
macptopbm.exe macptopbm.obj:		macptopbm.c macp.h
mgrtopbm.exe mgrtopbm.obj:		mgrtopbm.c mgr.h
pbmclean.exe pbmclean.obj:		pbmclean.c
pbmlife.exe pbmlife.obj:		pbmlife.c
pbmmake.exe pbmmake.obj:		pbmmake.c
pbmmask.exe pbmmask.obj:		pbmmask.c
pbmpscale.exe pbmpscale.obj:		pbmpscale.c
pbmreduce.exe pbmreduce.obj:		pbmreduce.c
pbmtext.exe pbmtext.obj:		pbmtext.c pbmfont.h
pbmto10x.exe pbmto10x.obj:		pbmto10x.c
pbmto4425.exe pbmto4425.obj:		pbmto4425.c
pbmtoascii.exe pbmtoascii.obj:	pbmtoascii.c
pbmtoatk.exe pbmtoatk.obj:		pbmtoatk.c
pbmtobbnbg.exe pbmtobbnbg.obj:	pbmtobbnbg.c
pbmtocmuwm.exe pbmtocmuwm.obj:	pbmtocmuwm.c cmuwm.h
pbmtoepson.exe pbmtoepson.obj:	pbmtoepson.c
pbmtog3.exe pbmtog3.obj:		pbmtog3.c g3.h
pbmtogem.exe pbmtogem.obj:		pbmtogem.c
pbmtogo.exe pbmtogo.obj:		pbmtogo.c
pbmtoicon.exe pbmtoicon.obj:		pbmtoicon.c
pbmtolj.exe pbmtolj.obj:		pbmtolj.c
pbmtoln03.exe pbmtoln03.obj:		pbmtoln03.c
pbmtolps.exe pbmtolps.obj:		pbmtolps.c
pbmtomacp.exe pbmtomacp.obj:		pbmtomacp.c macp.h
pbmtomgr.exe pbmtomgr.obj:		pbmtomgr.c mgr.h
pbmtopi3.exe pbmtopi3.obj:		pbmtopi3.c
pbmtopk.exe pbmtopk.obj:		pbmtopk.c
pbmtoplot.exe pbmtoplot.obj:		pbmtoplot.c
pbmtoptx.exe pbmtoptx.obj:		pbmtoptx.c
pbmtox10bm.exe pbmtox10bm.obj:	pbmtox10bm.c
pbmtoxbm.exe pbmtoxbm.obj:		pbmtoxbm.c
pbmtoybm.exe pbmtoybm.obj:		pbmtoybm.c
pbmtozinc.exe pbmtozinc.obj:		pbmtozinc.c
pbmupc.exe pbmupc.obj:		pbmupc.c
pi3topbm.exe pi3topbm.obj:		pi3topbm.c
pktopbm.exe pktopbm.obj:		pktopbm.c
xbmtopbm.exe xbmtopbm.obj:		xbmtopbm.c
ybmtopbm.exe ybmtopbm.obj:		ybmtopbm.c
pbmtoepsi.exe pbmtoepsi.obj:		pbmtoepsi.c

clean:
	-rm -f *.obj *.exe *.lib *.cat *~ core $(BINARIES) pbmmerge.exe
