From: David Griffith Date: Tue, 27 Mar 2018 17:42:14 +0000 (-0700) Subject: Give the core its own Makefile. X-Git-Url: https://scope-eye.net/git/?a=commitdiff_plain;h=8641c98ce3aca6f7b00f6aa007109903e7ea8e27;p=liskon_frotz.git Give the core its own Makefile. --- diff --git a/Makefile b/Makefile index 41b9c50..98176a4 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,7 @@ else GIT_TAG = $(VERSION) endif + BUILD_DATE_TIME = $(shell date +%Y%m%d.%k%M%S | sed s/\ //g) export CFLAGS @@ -115,26 +116,29 @@ CURSES ?= -lncurses 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 @@ -169,14 +173,15 @@ SDL_LIB = $(SDL_DIR)/frotz_sdl.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); @@ -187,15 +192,16 @@ $(SUBDIRS): $(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 @@ -207,8 +213,8 @@ sfrotz: $(SRCDIR)/frotz_common.a $(SDL_LIB) $(BLORB_LIB) %.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): @@ -219,6 +225,10 @@ $(DUMB_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) @@ -264,9 +274,9 @@ ifdef NO_MEMMOVE @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 diff --git a/src/common/Makefile b/src/common/Makefile new file mode 100644 index 0000000..accf788 --- /dev/null +++ b/src/common/Makefile @@ -0,0 +1,26 @@ +# For GNU Make. + +SOURCES = buffer.c err.c fastmem.c files.c getopt.c hotkey.c input.c \ + main.c math.c object.c process.c quetzal.c random.c redirect.c \ + screen.c sound.c stream.c table.c text.c variable.c + +HEADERS = frotz.h setup.h unused.h + +OBJECTS = $(SOURCES:.c=.o) + +TARGET = frotz_common.a + +ARFLAGS = rc + +.PHONY: clean +.DELETE_ON_ERROR: + +$(TARGET): $(OBJECTS) + $(AR) $(ARFLAGS) $@ $? + ranlib $@ + +clean: + rm -f $(TARGET) $(OBJECTS) + +%.o: %.c + $(CC) $(CFLAGS) -fPIC -fpic -o $@ -c $<