From ad90a0508d3f70c63c61f648452dde92662ee747 Mon Sep 17 00:00:00 2001 From: Jeff Teunissen Date: Sat, 29 Jan 2000 15:02:45 +0000 Subject: [PATCH] Added part of what we'll require for automatically generating dependency information. This is not activated yet, and will be quite annoying at the very least to activate before we are in a more traditional build tree, with a single source directory and self-contained (except for headers, of course) subdirs for modules. --- qw_client/Makefile.in | 87 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 70 insertions(+), 17 deletions(-) diff --git a/qw_client/Makefile.in b/qw_client/Makefile.in index dd0bc6c..7918a4a 100644 --- a/qw_client/Makefile.in +++ b/qw_client/Makefile.in @@ -20,7 +20,10 @@ mandir := @mandir@ TARGET_DIR := $(PROJECT_ODIR)/targets BUILD_DIR := $(TARGET_DIR)/qw_client -OBJ_PATTERN := $(shell echo $(BUILD_DIR)/{client,common_lib}/%.o) +OBJ_PATTERN := $(shell echo $(BUILD_DIR)/{client,common_lib}/%.@OBJEXT@) +DEP_PATTERN := $(shell echo $(BUILD_DIR)/{client,common_lib}/%.d) +GL_OBJ_PATTERN := $(shell echo $(BUILD_DIR)/client/gl/%.@OBJEXT@) +GL_DEP_PATTERN := $(shell echo $(BUILD_DIR)/client/gl/%.d) LDFLAGS = @LDFLAGS@ @SOUND_LIBS@ @NET_LIBS@ -lm LIBS = @LIBS@ @@ -145,7 +148,6 @@ MISC_SRC = common.c crc.c cvar.c cmd.c mathlib.c register_check.c \ GL_REND_SRC = gl_screen.c gl_model.c gl_draw.c gl_mesh.c gl_refrag.c \ gl_rlight.c gl_rmain.c gl_rmisc.c gl_rsurf.c gl_warp.c \ nonintel.c gl_ngraph.c gl_view.c gl_rpart.c gl_cl_parse.c -# gl_rlight.c gl_rmain.c gl_rmisc.c gl_rsurf.c gl_test.c gl_warp.c # Software renderer source @@ -189,6 +191,51 @@ GENERAL_SRC = $(CL_COMMON_SRC) \ # FIXME: add dos/win specifc source +########################################################################### +# +# Dependency Rules +# + +$(DEP_PATTERN): $(SRC_DIR)/%.c + set -e; $(CC) -M $(CFLAGS) $< \ + | sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \ + [ -s $@ ] || rm -f $@ + +$(DEP_PATTERN): $(SRC_DIR)/%.s + set -e; $(CC) -M $(CFLAGS) -x assembler-with-cpp $< \ + | sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \ + [ -s $@ ] || rm -f $@ + +$(DEP_PATTERN): $(COMMON_DIR)/%.c + set -e; $(CC) -M $(CFLAGS) $< \ + | sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \ + [ -s $@ ] || rm -f $@ + +$(DEP_PATTERN): $(COMMON_DIR)/%.s + set -e; $(CC) -M $(CFLAGS) -x assembler-with-cpp $< \ + | sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \ + [ -s $@ ] || rm -f $@ + +$(DEP_PATTERN): $(QW_COMMON_DIR)/%.c + set -e; $(CC) -M $(CFLAGS) $< \ + | sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \ + [ -s $@ ] || rm -f $@ + +$(DEP_PATTERN): $(QW_COMMON_DIR)/%.s + set -e; $(CC) -M $(CFLAGS) -x assembler-with-cpp $< \ + | sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \ + [ -s $@ ] || rm -f $@ + +$(GL_DEP_PATTERN): $(COMMON_DIR)/%.c + set -e; $(CC) -M $(CFLAGS) $(GL_CFLAGS) $< \ + | sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \ + [ -s $@ ] || rm -f $@ + +$(GL_DEP_PATTERN): $(COMMON_DIR)/%.s + set -e; $(CC) -M $(CFLAGS) $(GL_CFLAGS) -x assembler-with-cpp $< \ + | sed 's%\($*\)\.@OBJEXT@[ :]*%\1.@OBJEXT@ $@ : %g' > $@; \ + [ -s $@ ] || rm -f $@ + ########################################################################### # # Compilation rules @@ -206,21 +253,24 @@ $(OBJ_PATTERN): $(COMMON_DIR)/%.c $(OBJ_PATTERN): $(COMMON_DIR)/%.s $(CC) $(CFLAGS) -x assembler-with-cpp -o $@ -c $< -$(BUILD_DIR)/client/gl/%.@OBJEXT@: $(COMMON_DIR)/%.c - $(CC) $(CFLAGS) $(GL_CFLAGS) -o $@ -c $< - -$(BUILD_DIR)/client/gl/%.@OBJEXT@: $(COMMON_DIR)/%.s - $(CC) $(CFLAGS) $(GL_CFLAGS) -x assembler-with-cpp -o $@ -c $< - -$(BUILD_DIR)/client/gl/%.@OBJEXT@: $(SRC_DIR)/%.c - $(CC) $(CFLAGS) $(GL_CFLAGS) -o $@ -c $< - -$(BUILD_DIR)/client/gl/%.@OBJEXT@: $(SRC_DIR)/%.s - $(CC) $(CFLAGS) $(CFLAGS) -x assembler-with-cpp -o $@ -c $< - $(OBJ_PATTERN): $(QW_COMMON_DIR)/%.c $(CC) $(CFLAGS) -o $@ -c $< +$(OBJ_PATTERN): $(QW_COMMON_DIR)/%.s + $(CC) $(CFLAGS) -x assembler-with-cpp -o $@ -c $< + +$(GL_OBJ_PATTERN): $(SRC_DIR)/%.c + $(CC) $(CFLAGS) $(GL_CFLAGS) -o $@ -c $< + +$(GL_OBJ_PATTERN): $(SRC_DIR)/%.s + $(CC) $(CFLAGS) $(GL_CFLAGS) -x assembler-with-cpp -o $@ -c $< + +$(GL_OBJ_PATTERN): $(COMMON_DIR)/%.c + $(CC) $(CFLAGS) $(GL_CFLAGS) -o $@ -c $< + +$(GL_OBJ_PATTERN): $(COMMON_DIR)/%.s + $(CC) $(CFLAGS) $(GL_CFLAGS) -x assembler-with-cpp -o $@ -c $< + # Software targets client_DIR: @DIR=client; $(MAKE_SURE_DIR) @@ -238,7 +288,10 @@ gl_DIR: # Lib Software targets ALL_COMMON_LIB_OBJS = $(patsubst %,$(BUILD_DIR)/common_lib/%,$(addsuffix \ - .@OBJEXT@, $(basename $(GENERAL_SRC) .c .s))) + .@OBJEXT@, $(basename $(GENERAL_SRC) .c .s))) + +ALL_COMMON_LIB_DEPS = $(patsubst %,$(BUILD_DIR)/common_lib/%,$(addsuffix .d,\ + $(basename $(GENERAL_SRC) .c .s))) common_lib_DIR: @DIR=common_lib; $(MAKE_SURE_DIR) @@ -389,10 +442,10 @@ ifneq ($(GLQUAKE),) GLX_GL_SRC = gl_vidglx.c dga_check.c ALL_GL_SRC = $(GL_REND_SRC) $(GLX_GL_SRC) -GL_REND_OBJS = $(patsubst %,$(BUILD_DIR)/client/gl/%,$(addsuffix .o,\ +GL_REND_OBJS = $(patsubst %,$(BUILD_DIR)/client/gl/%,$(addsuffix .@OBJEXT@,\ $(basename $(GL_REND_SRC) .c .s))) -GLX_GL_OBJS = $(patsubst %,$(BUILD_DIR)/client/%,$(addsuffix .o,\ +GLX_GL_OBJS = $(patsubst %,$(BUILD_DIR)/client/%,$(addsuffix .@OBJEXT@,\ $(basename $(GLX_GL_SRC) .c .s))) ALL_GL_OBJS = $(GLX_GL_OBJS) $(GL_REND_OBJS) \