From a01302832564d321dd2a544d2ee6f1eb5a618863 Mon Sep 17 00:00:00 2001 From: molivier Date: Tue, 9 Dec 2003 08:05:43 +0000 Subject: [PATCH] Early support for NetBSD (the dedicated binary works and the GLX binary compiles) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@3712 d7cf8633-e32d-0410-b094-e92efae38249 --- fs.c | 2 +- lhnet.c | 2 +- makefile.bsd | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++ sys_shared.c | 2 + 4 files changed, 181 insertions(+), 2 deletions(-) create mode 100644 makefile.bsd diff --git a/fs.c b/fs.c index cd5f402a..43e7d499 100644 --- a/fs.c +++ b/fs.c @@ -328,7 +328,7 @@ qboolean PK3_OpenLibrary (void) #ifdef WIN32 dllname = "zlib.dll"; #else - dllname = "libz.so.1"; + dllname = "libz.so"; #endif // Initializations diff --git a/lhnet.c b/lhnet.c index d6372548..16cf4174 100644 --- a/lhnet.c +++ b/lhnet.c @@ -9,7 +9,7 @@ #include #else #include -//#include +#include //#include #include #include diff --git a/makefile.bsd b/makefile.bsd new file mode 100644 index 00000000..404e718d --- /dev/null +++ b/makefile.bsd @@ -0,0 +1,177 @@ +##### Variables that you may want to modify ##### + +#choose the compiler you want to use +CC=gcc + +MAKE:=$(MAKE) -f $(.PARSEFILE) + +#recommended for: anyone not using ALSA 0.5 +#OBJ_BSDSOUND=snd_oss.o snd_dma.o snd_mix.o snd_mem.o +OBJ_BSDSOUND=snd_null.o +BSDSOUNDLIB= + +#if you want CD sound in Linux +#OBJ_BSDCD=cd_bsd.o +#if you want no CD audio +OBJ_BSDCD=cd_null.o + +#K6/athlon optimizations +#CPUOPTIMIZATIONS=-march=k6 +#note: don't use -march=athlon, every gcc which has it currently (2.96-3.1) +#have optimizer bugs (like entities disappearing randomly - a bug with +#compiling BOX_ON_PLANE_SIDE in mathlib.h) +#CPUOPTIMIZATIONS=-march=athlon +#686 optimizations +#CPUOPTIMIZATIONS=-march=i686 +#no specific CPU +CPUOPTIMIZATIONS= + + +##### Variables that you shouldn't care about ##### + +CMD_RM=rm -f + +# Objects +CLIENTOBJECTS= cgame.o cgamevm.o cl_collision.o cl_demo.o cl_input.o \ + cl_main.o cl_parse.o cl_particles.o cl_screen.o cl_video.o \ + console.o dpvsimpledecode.o fractalnoise.o gl_backend.o \ + gl_draw.o gl_models.o gl_rmain.o gl_rsurf.o gl_textures.o \ + jpeg.o keys.o menu.o meshqueue.o r_crosshairs.o r_explosion.o \ + r_lerpanim.o r_light.o r_lightning.o r_modules.o r_sky.o \ + r_sprites.o sbar.o ui.o vid_shared.o view.o wavefile.o \ + r_shadow.o prvm_exec.o prvm_edict.o prvm_cmds.o +SERVEROBJECTS= pr_cmds.o pr_edict.o pr_exec.o sv_main.o sv_move.o \ + sv_phys.o sv_user.o +SHAREDOBJECTS= cmd.o collision.o common.o crc.o cvar.o \ + filematch.o host.o host_cmd.o image.o mathlib.o matrixlib.o \ + model_alias.o model_brush.o model_shared.o model_sprite.o \ + netconn.o lhnet.o palette.o portals.o protocol.o fs.o \ + sys_shared.o winding.o world.o wad.o zone.o curves.o +COMMONOBJECTS= $(CLIENTOBJECTS) $(SERVEROBJECTS) $(SHAREDOBJECTS) + +# note that builddate.c is very intentionally not compiled to a .o before +# being linked, because it should be recompiled every time an executable is +# built to give the executable a proper date string +OBJ_GLX= builddate.c sys_linux.o vid_glx.o $(OBJ_BSDCD) $(OBJ_BSDSOUND) $(COMMONOBJECTS) +OBJ_DED= builddate.c sys_linux.o vid_null.o cd_null.o snd_null.o $(COMMONOBJECTS) + + +# Compilation +# CFLAGS_NONEXECOMMON=-MD -Wall -Werror +CFLAGS_NONEXECOMMON=-MD -Wall +CFLAGS_DEBUG=-ggdb +CFLAGS_PROFILE=-g -pg -ggdb +CFLAGS_RELEASE= + +OPTIM_DEBUG= +OPTIM_RELEASE= -O2 -fno-strict-aliasing -ffast-math -fexpensive-optimizations $(CPUOPTIMIZATIONS) + +DO_CC=$(CC) $(CFLAGS) -c $< -o $@ + + +# Link +# LordHavoc note: I have been informed that system libraries must come last +# on the linker line, and that -lm must always be last +LDFLAGS_GLX=-lm +LDFLAGS_DED=-lm +LDFLAGS_DEBUG=-g -ggdb +LDFLAGS_PROFILE=-g -pg +LDFLAGS_RELEASE= + +EXE_GLX=darkplaces-glx +EXE_DED=darkplaces-dedicated + +DO_LD=$(CC) -o $@ $> $(LDFLAGS) + + +##### Commands ##### + +.PHONY : clean help \ + debug profile release \ + glx-debug glx-profile glx-release \ + ded-debug ded-profile ded-release + +help: + @echo + @echo "===== Choose one =====" + @echo "* $(MAKE) clean : delete the binaries, and .o and .d files" + @echo "* $(MAKE) help : this help" + @echo "* $(MAKE) debug : make GLX and dedicated binaries (debug versions)" + @echo "* $(MAKE) profile : make GLX and dedicated binaries (profile versions)" + @echo "* $(MAKE) release : make GLX and dedicated binaries (release versions)" + @echo "* $(MAKE) glx-debug : make GLX client (debug version)" + @echo "* $(MAKE) glx-profile : make GLX client (profile version)" + @echo "* $(MAKE) glx-release : make GLX client (release version)" + @echo "* $(MAKE) ded-debug : make dedicated server (debug version)" + @echo "* $(MAKE) ded-profile : make dedicated server (profile version)" + @echo "* $(MAKE) ded-release : make dedicated server (release version)" + @echo + +debug : + $(MAKE) glx-debug ded-debug + +profile : + $(MAKE) glx-profile ded-profile + +release : + $(MAKE) glx-release ded-release + +glx-debug : + $(MAKE) bin-debug EXE="$(EXE_GLX)" LDFLAGS_COMMON="$(LDFLAGS_GLX)" CFLAGS_COMMON="$(CFLAGS_NONEXECOMMON)" + +glx-profile : + $(MAKE) bin-profile EXE="$(EXE_GLX)" LDFLAGS_COMMON="$(LDFLAGS_GLX)" CFLAGS_COMMON="$(CFLAGS_NONEXECOMMON)" + +glx-release : + $(MAKE) bin-release EXE="$(EXE_GLX)" LDFLAGS_COMMON="$(LDFLAGS_GLX)" CFLAGS_COMMON="$(CFLAGS_NONEXECOMMON)" + +ded-debug : + $(MAKE) bin-debug EXE="$(EXE_DED)" LDFLAGS_COMMON="$(LDFLAGS_DED)" CFLAGS_COMMON="$(CFLAGS_NONEXECOMMON)" + +ded-profile : + $(MAKE) bin-profile EXE="$(EXE_DED)" LDFLAGS_COMMON="$(LDFLAGS_DED)" CFLAGS_COMMON="$(CFLAGS_NONEXECOMMON)" + +ded-release : + $(MAKE) bin-release EXE="$(EXE_DED)" LDFLAGS_COMMON="$(LDFLAGS_DED)" CFLAGS_COMMON="$(CFLAGS_NONEXECOMMON)" + +bin-debug : + @echo + @echo "========== $(EXE) (debug) ==========" + $(MAKE) $(EXE) \ + CFLAGS="$(CFLAGS_COMMON) $(CFLAGS_DEBUG) $(OPTIM_DEBUG)"\ + LDFLAGS="$(LDFLAGS_DEBUG) $(LDFLAGS_COMMON)" + +bin-profile : + @echo + @echo "========== $(EXE) (profile) ==========" + $(MAKE) $(EXE) \ + CFLAGS="$(CFLAGS_COMMON) $(CFLAGS_PROFILE) $(OPTIM_RELEASE)"\ + LDFLAGS="$(LDFLAGS_PROFILE) $(LDFLAGS_COMMON)" + +bin-release : + @echo + @echo "========== $(EXE) (release) ==========" + $(MAKE) $(EXE) \ + CFLAGS="$(CFLAGS_COMMON) $(CFLAGS_RELEASE) $(OPTIM_RELEASE)"\ + LDFLAGS="$(LDFLAGS_RELEASE) $(LDFLAGS_COMMON)" + strip $(EXE) + +vid_glx.o: vid_glx.c + $(DO_CC) -I/usr/X11R6/include + +.c.o: + $(DO_CC) + +$(EXE_GLX): $(OBJ_GLX) + $(DO_LD) -L/usr/X11R6/lib -lX11 -lXext -lXxf86dga -lXxf86vm $(LINUXSOUNDLIB) + +$(EXE_DED): $(OBJ_DED) + $(DO_LD) + +clean: + -$(CMD_RM) $(EXE_GLX) + -$(CMD_RM) $(EXE_DED) + -$(CMD_RM) *.o + -$(CMD_RM) *.d + +-include *.d diff --git a/sys_shared.c b/sys_shared.c index 465b322e..18628ef6 100644 --- a/sys_shared.c +++ b/sys_shared.c @@ -103,6 +103,8 @@ void Sys_Shared_EarlyInit(void) os = "Linux"; #elif defined(WIN32) os = "Windows"; +#elif defined(__NetBSD__) + os = "NetBSD"; #else os = "Unknown"; #endif -- 2.39.2