Clean up Linux makefiles

This commit is contained in:
Sam V 2022-08-15 21:39:29 +02:00
parent 39598694fd
commit e7b1768630
3 changed files with 25 additions and 59 deletions

View file

@ -1,4 +1,3 @@
#
# Half-life Makefile for x86 Linux
#
@ -20,41 +19,24 @@ PM_SRC_DIR=$(SOURCE_DIR)/pm_shared
GAME_SHARED_SRC_DIR=$(SOURCE_DIR)/game_shared
PUBLIC_SRC_DIR=$(SOURCE_DIR)/public
BUILD_OBJ_DIR=$(BUILD_DIR)/obj
ARCH=i386
ELF-GC-DYNSTR=./elf-gc-dynstr
CPLUS="g++ -m32"
CPP_LIB:=-L$(shell g++ -m32 -print-file-name=libstdc++.so | xargs dirname) -lstdc++ -ldl -lpthread
CLINK=$(CPLUS)
ARCH_CFLAGS=-march=pentium-m -mfpmath=387
ifeq "$(CFG)" "release"
ARCH_CFLAGS_I486=-O3
ARCH_CFLAGS_I686=-O3
ARCH_CFLAGS_AMD=-O3
ARCH_CFLAGS_AMD64=-m64 -O3
ARCH_CFLAGS+=-O3
else
ARCH_CFLAGS_I486=-gdwarf-2 -g2
ARCH_CFLAGS_I686=-gdwarf-2 -g2
ARCH_CFLAGS_AMD=-gdwarf-2 -g2
ARCH_CFLAGS_AMD64=-m64 -gdwarf-2 -g2
ARCH_CFLAGS+=-gdwarf-2 -g2
endif
ARCH_CFLAGS_I486+=-march=pentium-m -mfpmath=387
ARCH_CFLAGS_I686+=-march=pentium-m -mfpmath=387
ARCH_CFLAGS_AMD+=-march=k6 -mfpmath=387
ARCH_CFLAGS="$(ARCH_CFLAGS_I486)"
BASE_CFLAGS=-std=c++17 -fpermissive -fno-strict-aliasing -DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -DNO_MALLOC_OVERRIDE -fno-exceptions -fexpensive-optimizations -Werror=return-type
BASE_CFLAGS+=-w
BASE_CFLAGS+= -DLINUX -D_LINUX
BASE_CFLAGS=-std=c++17 -fpermissive -fno-strict-aliasing -fno-exceptions -fexpensive-optimizations -Werror=return-type -w
BASE_CFLAGS+=-DNDEBUG -DPOSIX -D_POSIX -DLINUX -D_LINUX -DGNUC -DNO_MALLOC_OVERRIDE -DCLIENT_WEAPONS
SHLIBEXT=so
SHLIBCFLAGS=
@ -89,12 +71,11 @@ build_dir:
targets: $(TARGETS)
hl_cdll: build_dir
$(MAKE_HL_CDLL) ARCH=i686 CPLUS=$(CPLUS) CPP_LIB="$(CPP_LIB)" BUILD_DIR=$(BUILD_DIR) BUILD_OBJ_DIR=$(BUILD_OBJ_DIR) SOURCE_DIR=$(SOURCE_DIR) ENGINE_SRC_DIR=$(ENGINE_SRC_DIR) COMMON_SRC_DIR=$(COMMON_SRC_DIR) BASE_CFLAGS="$(BASE_CFLAGS)" PUBLIC_SRC_DIR=$(PUBLIC_SRC_DIR) ARCH_CFLAGS="$(ARCH_CFLAGS_I686)" GAME_SHARED_SRC_DIR=$(GAME_SHARED_SRC_DIR) CLINK=$(CLINK) PM_SRC_DIR=$(PM_SRC_DIR) SHLIBEXT=$(SHLIBEXT) SHLIBCFLAGS=$(SHLIBCFLAGS) SHLIBLDFLAGS=$(SHLIBLDFLAGS) CFG=$(CFG) OS=$(OS)
$(MAKE_HL_CDLL) CPLUS=$(CPLUS) ARCH=$(ARCH) ARCH_CFLAGS="$(ARCH_CFLAGS)" SHLIBEXT=$(SHLIBEXT) SHLIBCFLAGS=$(SHLIBCFLAGS) SHLIBLDFLAGS=$(SHLIBLDFLAGS) CPP_LIB="$(CPP_LIB)" CFG=$(CFG) OS=$(OS) BASE_CFLAGS="$(BASE_CFLAGS)" BUILD_DIR=$(BUILD_DIR) BUILD_OBJ_DIR=$(BUILD_OBJ_DIR) SOURCE_DIR=$(SOURCE_DIR) ENGINE_SRC_DIR=$(ENGINE_SRC_DIR) COMMON_SRC_DIR=$(COMMON_SRC_DIR) PUBLIC_SRC_DIR=$(PUBLIC_SRC_DIR) GAME_SHARED_SRC_DIR=$(GAME_SHARED_SRC_DIR) PM_SRC_DIR=$(PM_SRC_DIR)
hl: build_dir
$(MAKE_HL_LIB) CPLUS=$(CPLUS) ARCH=$(ARCH) CPP_LIB="$(CPP_LIB)" BUILD_DIR=$(BUILD_DIR) BUILD_OBJ_DIR=$(BUILD_OBJ_DIR) SOURCE_DIR=$(SOURCE_DIR) ENGINE_SRC_DIR=$(ENGINE_SRC_DIR) COMMON_SRC_DIR=$(COMMON_SRC_DIR) PM_SRC_DIR=$(PM_SRC_DIR) GAME_SHARED_SRC_DIR=$(GAME_SHARED_SRC_DIR) BASE_CFLAGS="$(BASE_CFLAGS)" SHLIBEXT=$(SHLIBEXT) SHLIBCFLAGS=$(SHLIBCFLAGS) SHLIBLDFLAGS=$(SHLIBLDFLAGS) PUBLIC_SRC_DIR=$(PUBLIC_SRC_DIR) CFG=$(CFG) OS=$(OS) ARCH_CFLAGS="$(ARCH_CFLAGS_I686)"
$(MAKE_HL_LIB) CPLUS=$(CPLUS) ARCH=$(ARCH) ARCH_CFLAGS="$(ARCH_CFLAGS)" SHLIBEXT=$(SHLIBEXT) SHLIBCFLAGS=$(SHLIBCFLAGS) SHLIBLDFLAGS=$(SHLIBLDFLAGS) CPP_LIB="$(CPP_LIB)" CFG=$(CFG) OS=$(OS) BASE_CFLAGS="$(BASE_CFLAGS)" BUILD_DIR=$(BUILD_DIR) BUILD_OBJ_DIR=$(BUILD_OBJ_DIR) SOURCE_DIR=$(SOURCE_DIR) ENGINE_SRC_DIR=$(ENGINE_SRC_DIR) COMMON_SRC_DIR=$(COMMON_SRC_DIR) PUBLIC_SRC_DIR=$(PUBLIC_SRC_DIR) GAME_SHARED_SRC_DIR=$(GAME_SHARED_SRC_DIR) PM_SRC_DIR=$(PM_SRC_DIR)
clean:
-rm -rf $(BUILD_OBJ_DIR)

View file

@ -6,8 +6,6 @@
HL_SRC_DIR=$(SOURCE_DIR)/cl_dll
HL_PARTICLEMAN_DIR=$(SOURCE_DIR)/cl_dll/particleman
HL_SERVER_SRC_DIR=$(SOURCE_DIR)/dlls
GAME_SHARED_SRC_DIR=$(SOURCE_DIR)/game_shared
PM_SHARED_SRC_DIR=$(SOURCE_DIR)/pm_shared
HL1_OBJ_DIR=$(BUILD_OBJ_DIR)/hl1_client
HL1_PARTICLEMAN_OBJ_DIR=$(BUILD_OBJ_DIR)/particleman
@ -17,16 +15,13 @@ GAME_SHARED_OBJ_DIR=$(HL1_OBJ_DIR)/game_shared
HL1_SERVER_OBJ_DIR=$(HL1_OBJ_DIR)/server
PM_SHARED_OBJ_DIR=$(HL1_OBJ_DIR)/pm_shared
CFLAGS=$(BASE_CFLAGS) $(ARCH_CFLAGS) -DCLIENT_DLL -DCLIENT_WEAPONS -I/usr/include/malloc
CFLAGS=$(BASE_CFLAGS) $(ARCH_CFLAGS) -DCLIENT_DLL
INCLUDEDIRS=-I$(HL_SRC_DIR) -I$(HL_PARTICLEMAN_DIR) -I../dlls -I$(COMMON_SRC_DIR) -I$(PUBLIC_SRC_DIR) -I../pm_shared -I../engine -I../utils/vgui/include -I ../game_shared -I../external
INCLUDEDIRS=-I$(HL_SRC_DIR) -I$(HL_PARTICLEMAN_DIR) -I../dlls -I/usr/include/malloc -I$(COMMON_SRC_DIR) -I$(PUBLIC_SRC_DIR) -I../pm_shared -I../engine -I../utils/vgui/include -I../game_shared -I../external
LDFLAGS=$(SHLIBLDFLAGS) $(CPP_LIB) -L$(CFG) vgui.so -L. libSDL2-2.0.so.0
LDFLAGS=$(SHLIBLDFLAGS) $(CPP_LIB) -L$(CFG) vgui.so -L. libSDL2-2.0.so.0
DO_CC=$(CPLUS) $(INCLUDEDIRS) $(CFLAGS) -o $@ -c $<
DO_PUBLIC_CC=$(CPLUS) $(INCLUDEDIRS) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
DO_COMMON_CC=$(CPLUS) $(INCLUDEDIRS) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
DO_PM_SHARED_CC=$(CPLUS) $(INCLUDEDIRS) $(CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
#####################################################################
@ -130,11 +125,10 @@ PM_SHARED_OBJS = \
$(PM_SHARED_OBJ_DIR)/pm_shared.o \
$(PM_SHARED_OBJ_DIR)/pm_math.o \
all: client.$(SHLIBEXT)
client.$(SHLIBEXT): $(HL1_OBJS) $(PUBLIC_OBJS) $(COMMON_OBJS) $(GAME_SHARED_OBJS) $(DLL_OBJS) $(PM_SHARED_OBJS)
$(CLINK) -o $(BUILD_DIR)/$@ $(HL1_OBJS) $(PUBLIC_OBJS) $(COMMON_OBJS) $(GAME_SHARED_OBJS) $(DLL_OBJS) $(PM_SHARED_OBJS) $(LDFLAGS) $(CPP_LIB)
$(CPLUS) -o $(BUILD_DIR)/$@ $(HL1_OBJS) $(PUBLIC_OBJS) $(COMMON_OBJS) $(GAME_SHARED_OBJS) $(DLL_OBJS) $(PM_SHARED_OBJS) $(LDFLAGS) $(CPP_LIB)
./gendbg.sh $(BUILD_DIR)/client.$(SHLIBEXT)
$(HL1_OBJ_DIR):
@ -179,16 +173,16 @@ $(HL1_OBJ_DIR)/%.o: $(HL_SRC_DIR)/VGUI/%.cpp $(filter-out $(wildcard $(HL1_OBJ_
$(DO_CC)
$(PUBLIC_OBJ_DIR)/%.o : $(PUBLIC_SRC_DIR)/%.cpp $(filter-out $(wildcard $(PUBLIC_OBJ_DIR)), $(PUBLIC_OBJ_DIR))
$(DO_PUBLIC_CC)
$(DO_CC)
$(COMMON_OBJ_DIR)/%.o : $(COMMON_SRC_DIR)/%.cpp $(filter-out $(wildcard $(COMMON_OBJ_DIR)), $(COMMON_OBJ_DIR))
$(DO_COMMON_CC)
$(DO_CC)
$(GAME_SHARED_OBJ_DIR)/%.o : $(GAME_SHARED_SRC_DIR)/%.cpp $(filter-out $(wildcard $(GAME_SHARED_OBJ_DIR)), $(GAME_SHARED_OBJ_DIR))
$(DO_COMMON_CC)
$(DO_CC)
$(PM_SHARED_OBJ_DIR)/%.o : $(PM_SHARED_SRC_DIR)/%.cpp $(filter-out $(wildcard $(PM_SHARED_OBJ_DIR)), $(PM_SHARED_OBJ_DIR))
$(DO_PM_SHARED_CC)
$(PM_SHARED_OBJ_DIR)/%.o : $(PM_SRC_DIR)/%.cpp $(filter-out $(wildcard $(PM_SHARED_OBJ_DIR)), $(PM_SHARED_OBJ_DIR))
$(DO_CC)
clean:
-rm -rf $(HL1_OBJ_DIR)

View file

@ -12,22 +12,13 @@ GAME_SHARED_OBJ_DIR=$(HLDLL_OBJ_DIR)/game_shared
PUBLIC_OBJ_DIR=$(HLDLL_OBJ_DIR)/public
COMMON_OBJ_DIR=$(HLDLL_OBJ_DIR)/common
#CFLAGS=$(BASE_CFLAGS) $(ARCH_CFLAGS) $(SHLIBCFLAGS) -DCLIENT_WEAPONS
CFLAGS=$(BASE_CFLAGS) $(ARCH_CFLAGS) -DCLIENT_WEAPONS
#-O3 -ffast-math -fno-strength-reduce
CFLAGS=$(BASE_CFLAGS) $(ARCH_CFLAGS)
HLDLL_INCLUDEDIRS=-I$(HLDLL_SRC_DIR) -I$(ENGINE_SRC_DIR) -I$(COMMON_SRC_DIR) -I$(PM_SRC_DIR) -I$(GAME_SHARED_SRC_DIR) -I$(PUBLIC_SRC_DIR)
PM_INCLUDEDIRS=-I$(HLDLL_SRC_DIR) -I$(COMMON_SRC_DIR) -I$(PUBLIC_SRC_DIR)
GAME_SHARED_INCLUDEDIRS=-I$(HLDLL_SRC_DIR) -I$(ENGINE_SRC_DIR) -I$(COMMON_SRC_DIR) -I$(PM_SRC_DIR) -I$(PUBLIC_SRC_DIR)
COMMON_INCLUDEDIRS=-I$(HLDLL_SRC_DIR) -I$(ENGINE_SRC_DIR) -I$(COMMON_SRC_DIR) -I$(PM_SRC_DIR) -I$(PUBLIC_SRC_DIR)
INCLUDEDIRS=-I$(HLDLL_SRC_DIR) -I$(ENGINE_SRC_DIR) -I$(COMMON_SRC_DIR) -I$(PM_SRC_DIR) -I$(GAME_SHARED_SRC_DIR) -I$(PUBLIC_SRC_DIR)
LDFLAGS= $(CPP_LIB) -lm
LDFLAGS= $(CPP_LIB)
DO_HLDLL_CC=$(CPLUS) $(HLDLL_INCLUDEDIRS) $(CFLAGS) -o $@ -c $<
DO_PUBLIC_CC=$(CPLUS) $(HLDLL_INCLUDEDIRS) $(CFLAGS) -o $@ -c $<
DO_PM_CC=$(CPLUS) $(PM_INCLUDEDIRS) $(CFLAGS) -o $@ -c $<
DO_GAME_SHARED_CC=$(CPLUS) $(GAME_SHARED_INCLUDEDIRS) $(CFLAGS) -o $@ -c $<
DO_COMMON_CC=$(CPLUS) $(COMMON_INCLUDEDIRS) $(CFLAGS) -o $@ -c $<
DO_CC=$(CPLUS) $(INCLUDEDIRS) $(CFLAGS) -o $@ -c $<
#####################################################################
@ -162,19 +153,19 @@ hl.$(SHLIBEXT): $(HLDLL_OBJS) $(PM_OBJS) $(GAME_SHARED_OBJS) $(PUBLIC_OBJS) $(CO
./gendbg.sh $(BUILD_DIR)/hl.$(SHLIBEXT)
$(HLDLL_OBJ_DIR)/%.o : $(HLDLL_SRC_DIR)/%.cpp
$(DO_HLDLL_CC)
$(DO_CC)
$(PM_OBJ_DIR)/%.o : $(PM_SRC_DIR)/%.cpp
$(DO_PM_CC)
$(DO_CC)
$(GAME_SHARED_OBJ_DIR)/%.o : $(GAME_SHARED_SRC_DIR)/%.cpp
$(DO_GAME_SHARED_CC)
$(DO_CC)
$(PUBLIC_OBJ_DIR)/%.o : $(PUBLIC_SRC_DIR)/%.cpp
$(DO_PUBLIC_CC)
$(DO_CC)
$(COMMON_OBJ_DIR)/%.o : $(COMMON_SRC_DIR)/%.cpp
$(DO_COMMON_CC)
$(DO_CC)
clean:
-rm -rf $(COMMON_OBJ_DIR)