# Makefile for HTINFO: HereTic INFO.c utility

# Definitions
CP	= cp -p
# for SunOS use:
# CC	= acc
# for Irix, HP-UX use:
# CC	= cc
# for Linux, Ultrix 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 -I . -DHTINFO
LDFLAGS	= -s

# for SunOS use:
# INCLUDES = /usr/users/sigc/a01/bin/SC1.0/ansi_include
# for Irix, Linux, Ultrix, HP-UX 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= htinfo
PROGSWIN= htinfo32.exe htinfo64.exe
INCS	= $(wildcard *.h) $(wildcard ../common/*.h)
SRCS	= $(wildcard *.c) $(filter-out ../common/ctemplate.c, $(wildcard ../common/*.c))
OBJS	= $(SRCS:.c=.o)
DEPS	= $(SRCS:.c=.d)


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

-include $(DEPS)

%.o:	%.c
	$(CC) -c $(CFLAGS) -MMD -MF $(patsubst %.o,%.d,$@) -o $@ $<

# Commands
htinfo: $(OBJS) ../common/libctemplate.a
	$(CC) $(LDFLAGS) $(OBJS) -L ../common -lctemplate -o $@

htinfo32.exe: $(INCS) $(SRCS)
	$(CC32) $(CFLAGS) $(LDFLAGS) $(SRCS) ../common/ctemplate.c -o $@
	$(CP) $@ $(WINDST)

htinfo64.exe: $(INCS) $(SRCS)
	$(CC64) $(CFLAGS) $(LDFLAGS) $(SRCS) ../common/ctemplate.c -o $@
	$(CP) $@ $(WINDST)

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


# Remove Objects
clean:
	rm -f *.o
cleanall:
	rm -f *.o *.d ../common/*.o ../common/*.d htinfo htinfo*.exe

