quakeforge-old/uquake/Makefile.in
Joseph Carter d9d937cd66 ./configure is actually included this time. If DJGPP has autoconf we
should remove that file and just have people regenerate it.  Also update
the Makefile.in's to put bins right in targets rather than subdirs under
targets.  Removed stale uquake/Makefile.extra.
1999-12-31 02:40:35 +00:00

382 lines
9.7 KiB
Makefile

########################################################################
#
# Quake general stuff
#
PROJECT_DIR = @top_srcdir@
SRC_DIR = @srcdir@
BIN_PREFIX = quake
COMMON_DIR=$(PROJECT_DIR)/common
BUILD_DIR = $(PROJECT_DIR)/targets/uquake
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
CC = @CC@
INTEL_ARCH = @INTEL_ARCH@
ifneq ($(SRC_DIR),.)
SRC_DIR_INC = -I$(SRC_DIR)
endif
HAS_VGA = @HAS_VGA@
HAS_GLIDE = @HAS_GLIDE@
HAS_TDFXGL = @HAS_TDFXGL@
HAS_OGL = @HAS_OGL@
HAS_XIL = @HAS_XIL@
HAS_X11 = @HAS_X11@
MAKE_SURE_DIR = if test -d "$(BUILD_DIR)/$$DIR"; \
then \
true; \
else \
echo "Creating directory $(BUILD_DIR)/$$DIR"; \
mkdir -p $(BUILD_DIR)/$$DIR; \
fi
########################################################################
#
# Client targets
#
ifeq ($(HAS_OGL),yes)
GLQUAKE =$(BIN_PREFIX)-gl
endif
ifeq ($(HAS_TDFXGL),yes)
TDFXQUAKE= $(BIN_PREFIX)-3dfx
endif
ifeq ($(HAS_X11),yes)
X11QUAKE = $(BIN_PREFIX)-x11
endif
ifeq ($(HAS_VGA),yes)
SVGAQUAKE = $(BIN_PREFIX)-svga
endif
RELEASE = @RELEASE@
ifeq ($(RELEASE),yes)
OPTFLAGS = @RELEASE_CFLAGS@
else
OPTFLAGS = -g
endif
targets = $(SVGAQUAKE) $(GLQUAKE) $(TDFXQUAKE) $(X11QUAKE)
CLEAN_TARGETS = $(patsubst %,clean-%, $(targets))
.PHONY: $(targets) ($CLEAN_TARGETS)
x: Makefile
@echo binaries: $(targets)
@echo other targets: distclean
@echo all: makes all targets - $(targets)
all: $(targets)
########################################################################
#
# Source files
#
ifeq ($(INTEL_ARCH),yes)
# Source file the Intel archictecture only
UQ_GENERAL_SRC = worlda.s
UQ_SWREND_SRC_PLAT = dosasm.s
CL_ADDITIONAL_GENERAL_SRC = sys_dosa.s math.s
SWREND_SRC_PLAT = d_copy.s d_draw.s d_draw16.s d_parta.s d_polysa.s d_scana.s \
d_spr8.s d_varsa.s r_aclipa.s r_aliasa.s \
r_drawa.s r_edgea.s r_varsa.s surf16.s surf8.s
else
# Source files for non-Intel platforms
SWREND_SRC_PLAT = nonintel.c
endif
#
# System specific source files
#
CD_AUDIO_SRC = cd_wrapper.c
# sound
SND_STYLE = @SND_STYLE@
SND_SRC = snd_null.c
ifeq ($(SND_STYLE),Linux)
SND_SRC = snd_dma.c snd_linux.c snd_mixa.s
endif
ifeq ($(SND_STYLE),Solaris)
SND_SRC = snd_dma.c snd_sun.c
endif
SND_SRC += snd_mem.c snd_mix.c
# x11 vid
X11_VID_SRC = @X11_VID_SRC@
SYS_SRC = @SYS_SRC@
#
# Networking source files
#
# XXX - Should not assume UNIX
NET_SRC = net_bsd.c net_udp.c
UQ_NET_SRC = net_dgrm.c net_loop.c net_main.c net_vcr.c $(NET_SRC)
#
# Common source files
#
MISC_SRC = common.c crc.c cvar.c cmd.c mathlib.c wad.c zone.c
#
# Rendering source files
#
# OpenGL
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_test.c gl_warp.c
# Software source
SW_REND_SRC = screen.c $(SWREND_SRC_PLAT) draw.c \
d_edge.c d_fill.c d_init.c d_modech.c d_part.c d_polyse.c d_scan.c \
d_sky.c d_sprite.c d_surf.c d_vars.c d_zpoint.c r_aclip.c r_alias.c \
r_bsp.c r_draw.c r_edge.c r_efrag.c r_light.c r_main.c r_misc.c \
r_sky.c r_sprite.c r_surf.c r_vars.c
#
# Client source files
#
CL_SRC = cl_demo.c cl_input.c cl_main.c cl_parse.c cl_tent.c
CL_GUI_SRC= console.c sbar.c view.c keys.c menu.c
#
# Server source files
#
# Server-related source used by all
SRV_SRC = sv_main.c sv_user.c sv_move.c sv_phys.c
# Server-related source used just by UQ
UQ_SRV_SRC = host.c host_cmd.c $(SRV_SRC)
SRV_PR_SRC = pr_cmds.c pr_edict.c pr_exec.c
# Source common to both UQ and QW-client
CL_COMMON_SRC = $(MISC_SRC) $(CL_GUI_SRC) $(CL_SRC) \
$(CL_ADDITIONAL_GENERAL_SRC) $(SND_SRC) $(CD_AUDIO_SRC) r_part.c
########################################################################
#
# Directory specific stuff
#
DEFS = @DEFS@
CFLAGS = $(OPTFLAGS) $(DEFS) -I. $(SRC_DIR_INC) -I$(COMMON_DIR) -I$(SRC_DIR)/include
ALL_X11_SRC = $(GENERAL_SRC) $(SW_REND_SRC) $(X11_VID_SRC) model.c
ALL_GL_SRC = $(GENERAL_SRC) $(GL_REND_SRC) $(GL_VID_SRC)
ALL_TDFX_SRC = $(GENERAL_SRC) $(GL_REND_SRC) $(TDFX_VID_SRC)
GENERAL_SRC = $(CL_COMMON_SRC) \
$(SYS_SRC) chase.c world.c $(SRV_PR_SRC) \
$(UQ_NET_SRC) $(UQ_SRV_SRC) \
$(UQ_GENERAL_SRC) $(UQ_SWREND_SRC_PLAT)
# XXX - add dos/win specific source
###########################################################################
#
# Compilation rules
#
###########################################################################
#
# quake-x11
#
ifneq ($(X11QUAKE),)
# Map the list of source files into a list of object files
OBJSquake-x11 = $(patsubst %,$(BUILD_DIR)/x11/%,$(addsuffix .@OBJEXT@, $(basename $(ALL_X11_SRC) .c .s)))
X11_CFLAGS = -DX11 $(X_CFLAGS)
X11_LDFLAGS = @X_LIBS@ -lX11 @X11_SHM_LIB@ @X_EXTRA_LIBS@ -lm
# This can be thought of as a macro that makes sure that the x11
# sub-directory is created
# XXX - can we avoid doing every compile?
MAKE_SURE_x11_DIR = @DIR=x11; $(MAKE_SURE_DIR)
$(BUILD_DIR)/x11/%.o: $(SRC_DIR)/%.c
$(MAKE_SURE_x11_DIR)
$(CC) $(CFLAGS) $(X11_CFLAGS) -o $@ -c $<
$(BUILD_DIR)/x11/%.o: $(SRC_DIR)/%.s
$(MAKE_SURE_x11_DIR)
$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
$(BUILD_DIR)/x11/%.o: $(COMMON_DIR)/%.c
$(MAKE_SURE_x11_DIR)
$(CC) $(CFLAGS) $(X11_CFLAGS) -o $@ -c $<
$(BUILD_DIR)/x11/%.o: $(COMMON_DIR)/%.s
$(MAKE_SURE_x11_DIR)
$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
$(X11QUAKE): $(BUILD_DIR)/../$(X11QUAKE)
$(BUILD_DIR)/../$(X11QUAKE): $(OBJSquake-x11)
$(CC) $(CFLAGS) $(OBJSquake-x11) $(X11_LDFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/../$(X11QUAKE)
# XXX - Can this be automated?
clean-$(X11QUAKE):
rm -f $(OBJSquake-x11)
endif
###########################################################################
#
# quake-svga
#
ifneq ($(SVGAQUAKE),)
ALL_SVGA_SRC = $(GENERAL_SRC) $(SW_REND_SRC) $(SVGA_VID_SRC) model.c
OBJSquake-svga= $(patsubst %,$(BUILD_DIR)/svga/%,$(addsuffix .@OBJEXT@, $(basename $(ALL_SVGA_SRC) .c .s)))
SVGA_CFLAGS =
SVGA_LDFLAGS = -lvga
SVGA_VID_SRC = vid_svgalib.c
# This can be thought of as a macro that makes sure that the x11
# sub-directory is created
# XXX - can we avoid doing every compile?
MAKE_SURE_svga_DIR = @DIR=svga; $(MAKE_SURE_DIR)
# Not sure why this -O is needed, but it is...
$(BUILD_DIR)/svga/vid_svgalib.o: $(COMMON_DIR)/vid_svgalib.c
$(MAKE_SURE_svga_DIR)
$(CC) -O $(CFLAGS) $(SVGA_CFLAGS) -o $@ -c $<
$(BUILD_DIR)/svga/%.o: $(SRC_DIR)/%.c
$(MAKE_SURE_svga_DIR)
$(CC) $(CFLAGS) $(SVGA_CFLAGS) -o $@ -c $<
$(BUILD_DIR)/svga/%.o: $(SRC_DIR)/%.s
$(MAKE_SURE_svga_DIR)
$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
$(BUILD_DIR)/svga/%.o: $(COMMON_DIR)/%.c
$(MAKE_SURE_svga_DIR)
$(CC) $(CFLAGS) $(SVGA_CFLAGS) -o $@ -c $<
$(BUILD_DIR)/svga/%.o: $(COMMON_DIR)/%.s
$(MAKE_SURE_svga_DIR)
$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
$(SVGAQUAKE): $(BUILD_DIR)/../$(SVGAQUAKE)
$(BUILD_DIR)/../$(SVGAQUAKE): $(OBJSquake-svga)
$(CC) $(CFLAGS) $(OBJSquake-svga) $(SVGA_LDFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/../$(SVGAQUAKE)
# XXX - Can this be automated?
clean-$(SVGAQUAKE):
rm -f $(OBJSquake-svga)
endif
###########################################################################
#
# quake-gl
#
ifneq ($(GLQUAKE),)
OBJSquake-gl = $(patsubst %,$(BUILD_DIR)/gl/%,$(addsuffix .@OBJEXT@, $(basename $(ALL_GL_SRC) .c .s)))
GL_CFLAGS = -DGLQUAKE @OGL_CFLAGS@
GL_LDFLAGS = $(X11_LDFLAGS) @OGL_LDFLAGS@ -lGL
# XXX - this is for glx
# XXX - is this platform independent?
GL_VID_SRC = gl_vidlinuxglx.c
# This can be thought of as a macro that makes sure that the x11
# sub-directory is created
# XXX - can we avoid doing every compile?
MAKE_SURE_gl_DIR = @DIR=gl; $(MAKE_SURE_DIR)
$(BUILD_DIR)/gl/%.o: $(SRC_DIR)/%.c
$(MAKE_SURE_gl_DIR)
$(CC) $(CFLAGS) $(GL_CFLAGS) -o $@ -c $<
$(BUILD_DIR)/gl/%.o: $(SRC_DIR)/%.s
$(MAKE_SURE_gl_DIR)
$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
$(BUILD_DIR)/gl/%.o: $(COMMON_DIR)/%.c
$(MAKE_SURE_gl_DIR)
$(CC) $(CFLAGS) $(GL_CFLAGS) -o $@ -c $<
$(BUILD_DIR)/gl/%.o: $(COMMON_DIR)/%.s
$(MAKE_SURE_gl_DIR)
$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
$(GLQUAKE): $(BUILD_DIR)/../$(GLQUAKE)
$(BUILD_DIR)/../$(GLQUAKE): $(OBJSquake-gl)
$(CC) $(CFLAGS) $(OBJSquake-gl) $(GL_LDFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/../$(GLQUAKE)
# XXX - Can this be automated?
clean-$(GLQUAKE):
rm -f $(OBJSquake-gl)
endif
###########################################################################
#
# quake-3dfx
#
ifneq ($(TDFXQUAKE),)
OBJSquake-3dfx = $(patsubst %,$(BUILD_DIR)/3dfx/%,$(addsuffix .@OBJEXT@, $(basename $(ALL_TDFX_SRC) .c .s)))
TDFX_CFLAGS = -DGLQUAKE @OGL_CFLAGS@ @GLIDE_CFLAGS@
TDFX_LDFLAGS = $(SVGA_LDFLAGS) @GLIDE_LDFLAGS@ @TDFXGL_LDFLAGS@ -ldl
# XXX - this is for 3dfxgl
TDFX_VID_SRC = gl_vidlinux.c
# This can be thought of as a macro that makes sure that the x11
# sub-directory is created
# XXX - can we avoid doing every compile?
MAKE_SURE_3dfx_DIR = @DIR=3dfx; $(MAKE_SURE_DIR)
$(BUILD_DIR)/3dfx/%.o: $(SRC_DIR)/%.c
$(MAKE_SURE_3dfx_DIR)
$(CC) $(CFLAGS) $(TDFX_CFLAGS) -o $@ -c $<
$(BUILD_DIR)/3dfx/%.o: $(SRC_DIR)/%.s
$(MAKE_SURE_3dfx_DIR)
$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
$(BUILD_DIR)/3dfx/%.o: $(COMMON_DIR)/%.c
$(MAKE_SURE_3dfx_DIR)
$(CC) $(CFLAGS) $(TDFX_CFLAGS) -o $@ -c $<
$(BUILD_DIR)/3dfx/%.o: $(COMMON_DIR)/%.s
$(MAKE_SURE_gl_DIR)
$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
$(TDFXQUAKE): $(BUILD_DIR)/../$(TDFXQUAKE)
$(BUILD_DIR)/../$(TDFXQUAKE): $(OBJSquake-3dfx)
$(CC) $(CFLAGS) $(OBJSquake-3dfx) $(TDFX_LDFLAGS) $(LDFLAGS) -o $(BUILD_DIR)/../$(TDFXQUAKE)
# XXX - Can this be automated?
clean-$(TDFXQUAKE):
rm -f $(OBJSquake-3dfx)
endif
###########################################################################
#
# cleaning (clean, distclean)
#
distclean: clean
rm -f config.cache config.log config.status Makefile
clean: $(CLEAN_TARGETS)
install:
@echo Install not implemented
check:
@echo check not implemented