vhlt/Makefile

359 lines
9.1 KiB
Makefile
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# Makefile for Linux GNU compiler
#
# Usage:
# make - Build all tools. They will be copied into 'bin' directory.
# make clean - Clean.
# make hlcsg - Build hlcsg.
# make hlbsp - Build hlbsp.
# make hlvis - Build hlvis.
# make hlrad - Build hlrad.
# make ripent - Build ripent.
#
# Before running the tools, please make sure the default maximum stack size on your computer
# is more than 4MB.
#
# When compiling with g++:
# Flag '-fno-strict-aliasing' is a must.
# All macro definitions should not be changed, because all code were written and checked under this assumption.
# The following warnings should be ignored:
# warning: no newline at end of file
# warning: '???' may be used uninitialized in this function
# warning: suggest parentheses around assignment used as truth value
# warning: passing float for argument 1 to void seconds_to_hhmm(unsigned int, unsigned int&, unsigned int&, unsigned int&, unsigned int&)
# warning: ignoring #pragma warning
# warning: comparison between signed and unsigned integer expressions
# warning: enumeration value ??? not handled in switch
# warning: unused variable ???
# warning: converting to int from vec_t
#
CXX?=g++
#
# Common .cpp and .h files for all projects
#
COMMON_CPPFILES = \
common/blockmem.cpp \
common/bspfile.cpp \
common/cmdlib.cpp \
common/cmdlinecfg.cpp \
common/filelib.cpp \
common/log.cpp \
common/mathlib.cpp \
common/messages.cpp \
common/scriplib.cpp \
common/threads.cpp \
common/winding.cpp \
COMMON_INCLUDEDIRS = \
template \
common \
COMMON_INCLUDEFILES = \
template/basictypes.h \
common/blockmem.h \
common/boundingbox.h \
common/bspfile.h \
common/cmdlib.h \
common/cmdlinecfg.h \
common/filelib.h \
common/hlassert.h \
common/log.h \
common/mathlib.h \
common/mathtypes.h \
common/messages.h \
common/scriplib.h \
common/threads.h \
common/win32fix.h \
common/winding.h \
ifeq ($(CXX),x86_64-w64-mingw32-g++)
HLCSG_NAME = hlcsg.exe
HLBSP_NAME = hlbsp.exe
HLRAD_NAME = hlrad.exe
HLVIS_NAME = hlvis.exe
RIPENT_NAME = ripent.exe
COMMON_DEFINITIONS = \
VERSION_64BIT \
NDEBUG \
WIN32 \
_CONSOLE \
SYSTEM_WIN32 \
STDC_HEADERS
else ifeq ($(CXX),i686-w64-mingw32-g++)
HLCSG_NAME = hlcsg.exe
HLBSP_NAME = hlbsp.exe
HLRAD_NAME = hlrad.exe
HLVIS_NAME = hlvis.exe
RIPENT_NAME = ripent.exe
COMMON_DEFINITIONS = \
VERSION_32BIT \
NDEBUG \
WIN32 \
_CONSOLE \
SYSTEM_WIN32 \
STDC_HEADERS
else
HLCSG_NAME = hlcsg
HLBSP_NAME = hlbsp
HLRAD_NAME = hlrad
HLVIS_NAME = hlvis
RIPENT_NAME = ripent
COMMON_DEFINITIONS = \
VERSION_LINUX \
SYSTEM_POSIX \
NDEBUG \
STDC_HEADERS \
HAVE_FCNTL_H \
HAVE_PTHREAD_H \
HAVE_SYS_RESOURCE_H \
HAVE_SYS_STAT_H \
HAVE_SYS_TIME_H \
HAVE_UNISTD_H
endif
COMMON_FLAGS = -Wall -Wno-deprecated-declarations -O2 -fno-strict-aliasing -pthread -pipe $(USER_FLAGS)
#
# Specific .cpp and .h files for hlcsg, hlbsp, hlvis, hlrad and ripent
#
HLCSG_CPPFILES = \
$(COMMON_CPPFILES) \
hlcsg/ansitoutf8.cpp \
hlcsg/autowad.cpp \
hlcsg/brush.cpp \
hlcsg/brushunion.cpp \
hlcsg/hullfile.cpp \
hlcsg/map.cpp \
hlcsg/properties.cpp \
hlcsg/qcsg.cpp \
hlcsg/textures.cpp \
hlcsg/wadcfg.cpp \
hlcsg/wadinclude.cpp \
hlcsg/wadpath.cpp \
HLCSG_INCLUDEDIRS = \
$(COMMON_INCLUDEDIRS) \
hlcsg \
HLCSG_INCLUDEFILES = \
$(COMMON_INCLUDEFILES) \
hlcsg/csg.h \
hlcsg/wadpath.h \
HLCSG_DEFINITIONS = \
$(COMMON_DEFINITIONS) \
HLCSG \
DOUBLEVEC_T \
HLBSP_CPPFILES = \
$(COMMON_CPPFILES) \
hlbsp/brink.cpp \
hlbsp/merge.cpp \
hlbsp/outside.cpp \
hlbsp/portals.cpp \
hlbsp/qbsp.cpp \
hlbsp/solidbsp.cpp \
hlbsp/surfaces.cpp \
hlbsp/tjunc.cpp \
hlbsp/writebsp.cpp \
HLBSP_INCLUDEDIRS = \
$(COMMON_INCLUDEDIRS) \
hlbsp \
HLBSP_INCLUDEFILES = \
$(COMMON_INCLUDEFILES) \
hlbsp/bsp5.h \
HLBSP_DEFINITIONS = \
$(COMMON_DEFINITIONS) \
HLBSP \
DOUBLEVEC_T \
HLVIS_CPPFILES = \
$(COMMON_CPPFILES) \
hlvis/flow.cpp \
hlvis/vis.cpp \
hlvis/zones.cpp \
HLVIS_INCLUDEDIRS = \
$(COMMON_INCLUDEDIRS) \
hlvis \
HLVIS_INCLUDEFILES = \
$(COMMON_INCLUDEFILES) \
hlvis/vis.h \
hlvis/zones.h \
HLVIS_DEFINITIONS = \
$(COMMON_DEFINITIONS) \
HLVIS \
HLRAD_CPPFILES = \
$(COMMON_CPPFILES) \
hlrad/compress.cpp \
hlrad/lerp.cpp \
hlrad/lightmap.cpp \
hlrad/loadtextures.cpp \
hlrad/mathutil.cpp \
hlrad/nomatrix.cpp \
hlrad/qrad.cpp \
hlrad/qradutil.cpp \
hlrad/sparse.cpp \
hlrad/trace.cpp \
hlrad/transfers.cpp \
hlrad/transparency.cpp \
hlrad/vismatrix.cpp \
hlrad/vismatrixutil.cpp \
HLRAD_INCLUDEDIRS = \
$(COMMON_INCLUDEDIRS) \
hlrad \
HLRAD_INCLUDEFILES = \
$(COMMON_INCLUDEFILES) \
common/anorms.h \
hlrad/compress.h \
hlrad/qrad.h \
HLRAD_DEFINITIONS = \
$(COMMON_DEFINITIONS) \
HLRAD \
RIPENT_CPPFILES = \
$(COMMON_CPPFILES) \
ripent/ripent.cpp \
RIPENT_INCLUDEDIRS = \
$(COMMON_INCLUDEDIRS) \
ripent \
RIPENT_INCLUDEFILES = \
$(COMMON_INCLUDEFILES) \
ripent/ripent.h \
RIPENT_DEFINITIONS = \
$(COMMON_DEFINITIONS) \
RIPENT \
#
# Build commands
#
.PHONY : all
all : bin/hlcsg bin/hlbsp bin/hlvis bin/hlrad bin/ripent printusage
@echo ======== OK ========
.PHONY : hlcsg
hlcsg : bin/hlcsg printusage
@echo ======== OK ========
.PHONY : hlbsp
hlbsp : bin/hlbsp printusage
@echo ======== OK ========
.PHONY : hlvis
hlvis : bin/hlvis printusage
@echo ======== OK ========
.PHONY : hlrad
hlrad : bin/hlrad printusage
@echo ======== OK ========
.PHONY : ripent
ripent : bin/ripent printusage
@echo ======== OK ========
bin/hlcsg : $(HLCSG_CPPFILES:%.cpp=hlcsg/release/%.o) printusage
@echo ======== hlcsg : linking ========
mkdir -p hlcsg/release/bin
$(CXX) $(COMMON_FLAGS) -o hlcsg/release/bin/hlcsg $(addprefix -I,$(HLCSG_INCLUDEDIRS)) $(addprefix -D,$(HLCSG_DEFINITIONS)) $(HLCSG_CPPFILES:%.cpp=hlcsg/release/%.o)
mkdir -p bin
cp hlcsg/release/bin/$(HLCSG_NAME) bin/$(HLCSG_NAME)
$(HLCSG_CPPFILES:%.cpp=hlcsg/release/%.o) : hlcsg/release/%.o : %.cpp $(HLCSG_INCLUDEFILES) printusage
@echo ======== hlcsg : compiling $< ========
mkdir -p $(dir $@)
$(CXX) -c $(COMMON_FLAGS) -o $@ $(addprefix -I,$(HLCSG_INCLUDEDIRS)) $(addprefix -D,$(HLCSG_DEFINITIONS)) $<
bin/hlbsp : $(HLBSP_CPPFILES:%.cpp=hlbsp/release/%.o) printusage
@echo ======== hlbsp : linking ========
mkdir -p hlbsp/release/bin
$(CXX) $(COMMON_FLAGS) -o hlbsp/release/bin/hlbsp $(addprefix -I,$(HLBSP_INCLUDEDIRS)) $(addprefix -D,$(HLBSP_DEFINITIONS)) $(HLBSP_CPPFILES:%.cpp=hlbsp/release/%.o)
mkdir -p bin
cp hlbsp/release/bin/$(HLBSP_NAME) bin/$(HLBSP_NAME)
$(HLBSP_CPPFILES:%.cpp=hlbsp/release/%.o) : hlbsp/release/%.o : %.cpp $(HLBSP_INCLUDEFILES) printusage
@echo ======== hlbsp : compiling $< ========
mkdir -p $(dir $@)
$(CXX) -c $(COMMON_FLAGS) -o $@ $(addprefix -I,$(HLBSP_INCLUDEDIRS)) $(addprefix -D,$(HLBSP_DEFINITIONS)) $<
bin/hlvis : $(HLVIS_CPPFILES:%.cpp=hlvis/release/%.o) printusage
@echo ======== hlvis : linking ========
mkdir -p hlvis/release/bin
$(CXX) $(COMMON_FLAGS) -o hlvis/release/bin/hlvis $(addprefix -I,$(HLVIS_INCLUDEDIRS)) $(addprefix -D,$(HLVIS_DEFINITIONS)) $(HLVIS_CPPFILES:%.cpp=hlvis/release/%.o)
mkdir -p bin
cp hlvis/release/bin/$(HLVIS_NAME) bin/$(HLVIS_NAME)
$(HLVIS_CPPFILES:%.cpp=hlvis/release/%.o) : hlvis/release/%.o : %.cpp $(HLVIS_INCLUDEFILES) printusage
@echo ======== hlvis : compiling $< ========
mkdir -p $(dir $@)
$(CXX) -c $(COMMON_FLAGS) -o $@ $(addprefix -I,$(HLVIS_INCLUDEDIRS)) $(addprefix -D,$(HLVIS_DEFINITIONS)) $<
bin/hlrad : $(HLRAD_CPPFILES:%.cpp=hlrad/release/%.o) printusage
@echo ======== hlrad : linking ========
mkdir -p hlrad/release/bin
$(CXX) $(COMMON_FLAGS) -o hlrad/release/bin/hlrad $(addprefix -I,$(HLRAD_INCLUDEDIRS)) $(addprefix -D,$(HLRAD_DEFINITIONS)) $(HLRAD_CPPFILES:%.cpp=hlrad/release/%.o)
mkdir -p bin
cp hlrad/release/bin/$(HLRAD_NAME) bin/$(HLRAD_NAME)
$(HLRAD_CPPFILES:%.cpp=hlrad/release/%.o) : hlrad/release/%.o : %.cpp $(HLRAD_INCLUDEFILES) printusage
@echo ======== hlrad : compiling $< ========
mkdir -p $(dir $@)
$(CXX) -c $(COMMON_FLAGS) -o $@ $(addprefix -I,$(HLRAD_INCLUDEDIRS)) $(addprefix -D,$(HLRAD_DEFINITIONS)) $<
bin/ripent : $(RIPENT_CPPFILES:%.cpp=ripent/release/%.o) printusage
@echo ======== ripent : linking ========
mkdir -p ripent/release/bin
$(CXX) $(COMMON_FLAGS) -o ripent/release/bin/ripent $(addprefix -I,$(RIPENT_INCLUDEDIRS)) $(addprefix -D,$(RIPENT_DEFINITIONS)) $(RIPENT_CPPFILES:%.cpp=ripent/release/%.o)
mkdir -p bin
cp ripent/release/bin/$(RIPENT_NAME) bin/$(RIPENT_NAME)
$(RIPENT_CPPFILES:%.cpp=ripent/release/%.o) : ripent/release/%.o : %.cpp $(RIPENT_INCLUDEFILES) printusage
@echo ======== ripent : compiling $< ========
mkdir -p $(dir $@)
$(CXX) -c $(COMMON_FLAGS) -o $@ $(addprefix -I,$(RIPENT_INCLUDEDIRS)) $(addprefix -D,$(RIPENT_DEFINITIONS)) $<
.PHONY : printusage
printusage :
head -n 35 Makefile
#
# Clean
#
.PHONY : clean
clean : printusage
rm -rf hlcsg/release
rm -rf hlbsp/release
rm -rf hlvis/release
rm -rf hlrad/release
rm -rf ripent/release
rm -rf bin
@echo ======== OK ========