# files in source that are needed
PACKAGE  = texgen
VERSION  = 1.0.0
SRCS     = texgen.c htmlsupport.c
HEADERS  = htmlsupport.h

LIB_DIRS =
LIBS     = 
CFLAGS   = -O6 -D_GNU_SOURCE
INCLUDES = -I..

BIN      = texgen

# commands to do things
INSTALL  = install
MKDIR    = mkdir
CC       = gcc
RM       = rm -f
RMRF     = rm -rf
TAR      = tar
GZIP     = gzip
CD       = cd
MAKE     = make
STRIP    = strip
SED      = sed
MAKEDEP  = gcc -MM $(CFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) $(EXTRA_INCLUDES)

# piece together variables
OBJS     = $(SRCS:.c=.o)
DIST     = $(PACKAGE)-$(VERSION)
BLD      = Makefile $(BUILD)
FILES    = $(SRCS) $(HEADERS) $(DATA) $(BLD) $(EXTRAS)

all: texgen

# rules for source
texgen:    $(OBJS)
	$(RM) $@
	$(CC) -o $@ $(OBJS) $(LIBS) $(EXTRA_LIBS) $(LIB_DIRS) $(EXTRA_LIB_DIRS)

.c.o:
	$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(INCLUDES) $(EXTRA_INCLUDES) -c $< -o $@

# clean out build crap
clean::
	$(RMRF) $(BIN) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut $(DIST) $(DIST).tar $(DIST).tar.gz ./=build ./=install "#"*

# how to install
install:: e
	@echo 
	@echo 
	@echo "You don't really want to do this. it doesn't work yet."
	@echo 
	@echo 

# how to make a dist tarball
dist::
	$(RMRF) $(DIST) $(DIST).tar $(DIST).tar.gz
	$(MKDIR) $(DIST)
	for I in $(FILES); do \
	if [ -x $$I ]; then $(INSTALL) -D -m 0775 $$I $(DIST)/$$I; else \
	if [ -f $$I ]; then $(INSTALL) -D -m 0664 $$I $(DIST)/$$I; else \
	if [ -d $$I ]; then $(INSTALL) -D -m 0555 -d $$I $(DIST)/$$I; fi; fi; fi; \
	done 
	$(TAR) -cf $(DIST).tar $(DIST)
	$(GZIP) $(DIST).tar
	$(RMRF) $(DIST)

# how to check the dist
distcheck: dist
	$(RMRF) ./=build ./=install
	$(MKDIR) ./=build
	$(MKDIR) ./=install
	($(CD) ./=build; $(GZIP) -d -c ../$(DIST).tar.gz | $(TAR) xvf -;)
	($(CD) ./=build/$(PACKAGE)-$(VERSION); \
	 $(MAKE) prefix=../../=install install)
	$(RMRF) ./=build ./=install $(DIST).tar.gz

# Update dependency info
dep depend:
	$(SED) '/^# CUT/,$$d' Makefile > Makefile.tmp
	echo "# CUT" >> Makefile.tmp
	$(MAKEDEP) $(SRCS) >> Makefile.tmp && mv Makefile.tmp Makefile
