# Makefile for DMPSMU: DooM PostScript Maps Utility

# Definitions
CP	= cp -p
# for SunOS use:
# CC	= acc
# for Irix, HP-UX use:
# CC	= cc
# for Linux, Ultrix, Solaris use:
CC	= gcc

# MinGW GCC cross-compiler to Windows 32- & 64-bit
CC32	= i686-w64-mingw32-gcc
CC64	= x86_64-w64-mingw32-gcc
WINDST	= ../windows/

#CFLAGS	= -O
CFLAGS	= -g
#LDFLAGS	= -s
LDFLAGS	=

# for SunOS use:
# INCLUDES = /usr/users/sigc/a01/bin/SC1.0/ansi_include
# for Irix, Linux, Ultrix, HP-UX, Solaris use:
# (none)

# big endian machines (Sun, SGI, HP-UX) need to swap bytes within int's/long's
# DEFINES = -DDM_BIG_ENDIAN
# little endian machines (IBM PC, DECstation) need to do nothing
DEFINES =


# Programs & Objects
PROGSLNX= dmpsmu dmpsmap 
PROGSWIN= dmpsmu32.exe dmpsmu64.exe dmpsmap32.exe dmpsmap64.exe
INCS	= dmps.h dmunix.h wstructs.h levels.h things.h print.h
OBJS	= wads.o things.o levels.o print.o ps.o
SRCS	= wads.c things.c levels.c print.c ps.c


# Rules & Dependencies
default: $(PROGSLNX)
all:	 $(PROGSLNX) $(PROGSWIN)

dmpsmu.o:  dmps.h dmunix.h
dmpsmap.o: dmps.h dmunix.h print.h
wads.o:    dmps.h dmunix.h
levels.o:  dmps.h dmunix.h wstructs.h
things.o:  dmps.h dmunix.h things.h
print.o:   dmps.h dmunix.h things.h levels.h wstructs.h
ps.o:      dmps.h dmunix.h things.h print.h


# Commands
dmpsmu: dmpsmu.o $(OBJS)
	$(CC) $(LDFLAGS) $(OBJS) $@.o -o $@

dmpsmap: dmpsmap.o $(OBJS)
	$(CC) $(LDFLAGS) $(OBJS) $@.o -o $@

dmpsmu32.exe: $(INCS) $(SRCS) dmpsmu.c
	$(CC32) $(CFLAGS) $(LDFLAGS) $(SRCS) dmpsmu.c -o $@
	$(CP) $@ $(WINDST)

dmpsmu64.exe: $(INCS) $(SRCS) dmpsmu.c
	$(CC64) $(CFLAGS) $(LDFLAGS) $(SRCS) dmpsmu.c -o $@
	$(CP) $@ $(WINDST)

dmpsmap32.exe: $(INCS) $(SRCS) dmpsmap.c
	$(CC32) $(CFLAGS) $(LDFLAGS) $(SRCS) dmpsmap.c -o $@
	$(CP) $@ $(WINDST)

dmpsmap64.exe: $(INCS) $(SRCS) dmpsmap.c
	$(CC64) $(CFLAGS) $(LDFLAGS) $(SRCS) dmpsmap.c -o $@
	$(CP) $@ $(WINDST)

.c.o:
# for SunOS use:
#	$(CC) $(CFLAGS) $(DEFINES) -I$(INCLUDES) -c $<
# for Irix, Linux, Ultrix, Solaris use:
	$(CC) $(CFLAGS) $(DEFINES) -c $<
# for HP-UX use:
#	$(CC) $(CFLAGS) $(DEFINES) -Aa -c $<


# Remove Objects
clean:
	rm -f *.o
cleanall:
	rm -f *.o dmpsmu dmpsmap *.exe $(WINDST)*.exe

