#
# glBSP Makefile for UNIX/Cmdline
#

MAIN=..
SYSDIR=.
SRC_DIR=glbsp

PROGNAME=glbsp

CC=gcc
CFLAGS=-O3 -Wall -DGLBSP_TEXT -DUNIX -DINLINE_G=inline
LIBS=-lm

OBJS=$(SYSDIR)/main.o     \
     $(SYSDIR)/display.o  \
     $(MAIN)/blockmap.o   \
     $(MAIN)/glbsp.o      \
     $(MAIN)/level.o      \
     $(MAIN)/node.o       \
     $(MAIN)/reject.o     \
     $(MAIN)/seg.o        \
     $(MAIN)/system.o     \
     $(MAIN)/util.o       \
     $(MAIN)/wad.o

FILE_LIST=$(SRC_DIR)/*/[Mm]ake*  \
          $(SRC_DIR)/*.[ch]    $(SRC_DIR)/*/*.[ch]  \
          $(SRC_DIR)/*.txt     $(SRC_DIR)/*/*.txt   \
          $(SRC_DIR)/win32/*.r[ch] 

DIR_LIST=$(SRC_DIR)/cmdline   $(SRC_DIR)/plugin  \
         $(SRC_DIR)/linux     $(SRC_DIR)/win32   \
         $(SRC_DIR)/*/obj


# ----- TARGETS ------------------------------------------------------

all:    $(PROGNAME)

clean:
	rm -f $(PROGNAME) $(MAIN)/*.o $(SYSDIR)/*.o
	rm -f $(MAIN)/core $(SYSDIR)/core $(MAIN)/glbsp.txt

$(PROGNAME): $(OBJS)
	$(CC) $(CFLAGS) $(OBJS) -o $(PROGNAME) $(LIBS)

backup: clean
	tar czf /tmp/glbsp.tgz make* *.[ch]

bin: all
	strip --strip-unneeded $(PROGNAME)
	cat $(MAIN)/README.txt $(MAIN)/USAGE.txt > $(MAIN)/glbsp.txt

tar: clean
	cd $(MAIN)/..; tar czf /tmp/glbspsrc.tgz $(FILE_LIST) --exclude=CVS

zip: clean
	cd $(MAIN)/..; zip -l /tmp/glbspsrc.zip $(DIR_LIST) $(FILE_LIST)

.PHONY: all clean backup bin tar zip

