GIT_TAG = $(VERSION)
endif
+
BUILD_DATE_TIME = $(shell date +%Y%m%d.%k%M%S | sed s/\ //g)
export CFLAGS
SRCDIR = src
COMMON_DIR = $(SRCDIR)/common
+COMMON_LIB = $(COMMON_DIR)/frotz_common.a
COMMON_DEFINES = $(COMMON_DIR)/defines.h
-COMMON_OBJECT = $(COMMON_DIR)/buffer.o \
- $(COMMON_DIR)/err.o \
- $(COMMON_DIR)/fastmem.o \
- $(COMMON_DIR)/files.o \
- $(COMMON_DIR)/hotkey.o \
- $(COMMON_DIR)/input.o \
- $(COMMON_DIR)/main.o \
- $(COMMON_DIR)/math.o \
- $(COMMON_DIR)/object.o \
- $(COMMON_DIR)/process.o \
- $(COMMON_DIR)/quetzal.o \
- $(COMMON_DIR)/random.o \
- $(COMMON_DIR)/redirect.o \
- $(COMMON_DIR)/screen.o \
- $(COMMON_DIR)/sound.o \
- $(COMMON_DIR)/stream.o \
- $(COMMON_DIR)/table.o \
- $(COMMON_DIR)/text.o \
- $(COMMON_DIR)/variable.o
+HASH = $(COMMON_DIR)/git_hash.h
+
+#COMMON_OBJECT = $(COMMON_DIR)/buffer.o \
+# $(COMMON_DIR)/err.o \
+# $(COMMON_DIR)/fastmem.o \
+# $(COMMON_DIR)/files.o \
+# $(COMMON_DIR)/hotkey.o \
+# $(COMMON_DIR)/input.o \
+# $(COMMON_DIR)/main.o \
+# $(COMMON_DIR)/math.o \
+# $(COMMON_DIR)/object.o \
+# $(COMMON_DIR)/process.o \
+# $(COMMON_DIR)/quetzal.o \
+# $(COMMON_DIR)/random.o \
+# $(COMMON_DIR)/redirect.o \
+# $(COMMON_DIR)/screen.o \
+# $(COMMON_DIR)/sound.o \
+# $(COMMON_DIR)/stream.o \
+# $(COMMON_DIR)/table.o \
+# $(COMMON_DIR)/text.o \
+# $(COMMON_DIR)/variable.o
CURSES_DIR = $(SRCDIR)/curses
CURSES_LIB = $(CURSES_DIR)/frotz_curses.a
export SDL_PKGS = libpng libjpeg sdl SDL_mixer freetype2 zlib
SDL_LDFLAGS = `pkg-config $(SDL_PKGS) --libs`
-OBJECTS = $(COMMON_OBJECT)# $(CURSES_OBJECT)
+#OBJECTS = $(COMMON_OBJECT)# $(CURSES_OBJECT)
-SUBDIRS = $(CURSES_DIR) $(SDL_DIR) $(DUMB_DIR) $(BLORB_DIR)
+SUBDIRS = $(COMMON_DIR) $(CURSES_DIR) $(SDL_DIR) $(DUMB_DIR) $(BLORB_DIR)
SUB_CLEAN = $(SUBDIRS:%=%-clean)
all: frotz dfrotz sfrotz
-$(CURSES_LIB): $(CURSES_DIR);
+$(COMMON_LIB): $(COMMON_DEFINES) $(HASH) $(COMMON_DIR);
+$(CURSES_LIB): $(CURSES_DEFINES) $(CURSES_DIR);
$(SDL_LIB): $(SDL_DIR);
$(DUMB_LIB): $(DUMB_DIR);
$(BLORB_LIB): $(BLORB_DIR);
$(SUB_CLEAN):
$(MAKE) -C $(@:%-clean=%) clean
+
# Main programs
-frotz: $(CURSES_DEFINES) $(SRCDIR)/frotz_common.a $(CURSES_LIB) $(BLORB_LIB)
+frotz: $(COMMON_LIB) $(CURSES_LIB) $(BLORB_LIB)
$(CC) $(CFLAGS) $^ -o $@$(EXTENSION) $(CURSES) $(LDFLAGS)
-dfrotz: $(SRCDIR)/frotz_common.a $(DUMB_LIB) $(BLORB_LIB)
+dfrotz: $(COMMON_LIB) $(DUMB_LIB) $(BLORB_LIB)
$(CC) $(CFLAGS) $^ -o $@$(EXTENSION)
-sfrotz: $(SRCDIR)/frotz_common.a $(SDL_LIB) $(BLORB_LIB)
+sfrotz: $(COMMON_LIB) $(SDL_LIB) $(BLORB_LIB)
$(CC) $(CFLAGS) $^ -o $@$(EXTENSION) $(LDFLAGS) $(SDL_LDFLAGS)
# Libs
%.o: %.c
$(CC) $(CFLAGS) -fPIC -fpic -o $@ -c $<
-common_lib: $(SRCDIR)/frotz_common.a
-$(SRCDIR)/frotz_common.a: $(COMMON_DIR)/git_hash.h $(COMMON_DEFINES) $(COMMON_OBJECT)
+common_lib: $(COMMON_LIB)
+$(COMMON_LIB):
curses_lib: $(CURSES_LIB)
$(CURSES_LIB):
blorb_lib: $(BLORB_LIB)
$(BLORB_LIB):
+
+#common_lib: $(SRCDIR)/frotz_common.a
+#$(SRCDIR)/frotz_common.a: $(COMMON_DIR)/git_hash.h $(COMMON_DEFINES) $(COMMON_OBJECT)
+
#curses_lib: $(SRCDIR)/frotz_curses.a
#$(SRCDIR)/frotz_curses.a: $(CURSES_DIR)/defines.h $(CURSES_OBJECT)
@echo "#define NO_MEMMOVE" >> $@
endif
-hash: $(COMMON_DIR)/git_hash.h
-$(COMMON_DIR)/git_hash.h:
- @echo "Creating $(COMMON_DIR)/git_hash.h"
+hash: $(HASH)
+$(HASH):
+ @echo "Creating $@"
@echo "#define GIT_BRANCH \"$(GIT_BRANCH)\"" > $(COMMON_DIR)/git_hash.h
@echo "#define GIT_HASH \"$(GIT_HASH)\"" >> $(COMMON_DIR)/git_hash.h
@echo "#define GIT_HASH_SHORT \"$(GIT_HASH_SHORT)\"" >> $(COMMON_DIR)/git_hash.h