#
# glBSP Makefile for UNIX/Cmdline
#

MAIN=.
SYSDIR=cmdline
SRC_DIR=glbsp-2.20

PROGNAME=glbsp

CC=cc
CFLAGS=-O2 -Wall -DGLBSP_TEXT -DUNIX -DINLINE_G=inline
LIBS=-lm -lz

OBJS=$(SYSDIR)/main.o     \
     $(SYSDIR)/display.o  \
     $(MAIN)/analyze.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


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

all:    $(PROGNAME)

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

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

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

install: bin
	cp $(PROGNAME) /usr/bin/$(PROGNAME)
	chown root /usr/bin/$(PROGNAME)
	chmod 755 /usr/bin/$(PROGNAME)
	cp $(MAIN)/glbsp.1 /usr/share/man/man1/glbsp.1
	chmod 644 /usr/share/man/man1/glbsp.1

.PHONY: all clean bin install


# ----- RELEASE CRUD -----------------------------------------------

TEXT_LIST=$(SRC_DIR)/*.[ch]*   \
          $(SRC_DIR)/*.txt     \
          $(SRC_DIR)/*.[1-9]   \
          $(SRC_DIR)/Make*     \
          $(SRC_DIR)/Cmdline*  \
          $(SRC_DIR)/Plugin*   \
          $(SRC_DIR)/GUI*      \
          $(SRC_DIR)/cmdline/*.[ch]*    \
          $(SRC_DIR)/fltk/*.[ch]*   \
          $(SRC_DIR)/fltk/*.r       \
          $(SRC_DIR)/fltk/*.r[ch]   \
          $(SRC_DIR)/fltk/*.desktop  \
          $(SRC_DIR)/fltk/*.xpm  \
          $(SRC_DIR)/fltk/glBSPX.app/Contents/Info.plist

BIN_LIST=$(SRC_DIR)/fltk/*.ico  \
         $(SRC_DIR)/fltk/glBSPX.app/Contents/PkgInfo  \
         $(SRC_DIR)/fltk/glBSPX.app/Contents/Resources/glbspx.icns

DIR_LIST=$(SRC_DIR)/cmdline   \
         $(SRC_DIR)/cmdline/obj  \
         $(SRC_DIR)/plugin    \
         $(SRC_DIR)/fltk  \
         $(SRC_DIR)/fltk/glBSPX.app  \
         $(SRC_DIR)/fltk/glBSPX.app/Contents  \
         $(SRC_DIR)/fltk/glBSPX.app/Contents/Resources

tar: clean
	cd $(MAIN)/..;  \
        tar czf ~/glbspsrc.tgz $(TEXT_LIST) $(BIN_LIST) --exclude=CVS

zip: clean
	cd $(MAIN)/..;  \
        zip ~/glbspsrc.zip $(DIR_LIST) $(BIN_LIST);  \
        zip -l ~/glbspsrc.zip $(TEXT_LIST)

testlist:
	cd $(MAIN)/..;  \
	echo -e TEXT: $(TEXT_LIST) "\n" BIN:  $(BIN_LIST)

.PHONY: tar zip testlist

