* Port to MinGW
This commit is contained in:
parent
50eb77ed1a
commit
fcaf343d7f
28 changed files with 347 additions and 64 deletions
|
@ -1,32 +1,38 @@
|
|||
TODO: the Mac port seems stable, but outputs a bunch of warnings..
|
||||
2005-09-??
|
||||
- SDL Stuff (icculus)
|
||||
- x86_64 (ludwig von angstenheimer)
|
||||
- patches from a casth of thousands
|
||||
|
||||
2004-05-22
|
||||
- updated the xcode project from Apple's version
|
||||
now with the latest vm_ppc code
|
||||
|
||||
2005-09-22 Tim Angus <tim@ngus.net>
|
||||
+ MinGW port
|
||||
|
||||
2005-09-??
|
||||
+ SDL Stuff (icculus)
|
||||
+ x86_64 (ludwig von angstenheimer)
|
||||
+ patches from a cast of thousands
|
||||
|
||||
2004-05-22 Timothee Besset <ttimo@idsoftware.com>
|
||||
+ updated the xcode project from Apple's version
|
||||
now with the latest vm_ppc code
|
||||
|
||||
2004-05-21 Timothee Besset <ttimo@idsoftware.com>
|
||||
- fixed the Linux build to compile again on sid (glext.h and gcc3 warnings)
|
||||
- 2 weeks ago, hacked up the source to compile on panther / xcode 1.1
|
||||
several cleanups were needed, and VM support seems broke (hangs or crashes)
|
||||
- got altivec optimisations from Apple (Kenneth Dyke)
|
||||
merged back in
|
||||
- looks like with the new code merge the VM support is back in and working
|
||||
|
||||
+ fixed the Linux build to compile again on sid (glext.h and gcc3 warnings)
|
||||
+ 2 weeks ago, hacked up the source to compile on panther / xcode 1.1
|
||||
several cleanups were needed, and VM support seems broke (hangs or crashes)
|
||||
+ got altivec optimisations from Apple (Kenneth Dyke)
|
||||
merged back in
|
||||
+ looks like with the new code merge the VM support is back in and working
|
||||
|
||||
2003-09-15 Timothee Besset <ttimo@idsoftware.com>
|
||||
- import Q3 java master code, cleanups on monster
|
||||
+ import Q3 java master code, cleanups on monster
|
||||
|
||||
2003-08-31 Timothee Besset <ttimo@idsoftware.com>
|
||||
+ loki_setup hell
|
||||
https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=626
|
||||
http://zerowing.idsoftware.com/linux/q3a/index.html#glibc
|
||||
text mode installer in loki_setup image built on Mandrake 7.2 crashes on some glibc 2.3 systems such as RH9 etc.
|
||||
need to move to a different version of the installer, and update old installers to keep them still 'installing'
|
||||
moving to build the setup binaries on Debian Woody systems (glibc 2.2, text mode installer will no longer work on 2.1 systems)
|
||||
hacked together a new setup, using setup tree from RTCW. would need a complete revamp if a new full setup with new binaries is needed
|
||||
+ loki_setup hell
|
||||
https://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=626
|
||||
http://zerowing.idsoftware.com/linux/q3a/index.html#glibc
|
||||
text mode installer in loki_setup image built on Mandrake 7.2 crashes on
|
||||
some glibc 2.3 systems such as RH9 etc. need to move to a different
|
||||
version of the installer, and update old installers to keep them still
|
||||
'installing' moving to build the setup binaries on Debian Woody systems
|
||||
(glibc 2.2, text mode installer will no longer work on 2.1 systems) hacked
|
||||
together a new setup, using setup tree from RTCW. would need a complete
|
||||
revamp if a new full setup with new binaries is needed
|
||||
|
||||
2003-07-17 Timothee Besset <ttimo@idsoftware.com>
|
||||
+ new cvsreport, testing per-module config
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
# GNU Make required
|
||||
#
|
||||
|
||||
PLATFORM=$(shell uname|tr A-Z a-z)
|
||||
PLATFORM=$(shell uname|sed -e s/_.*//|tr A-Z a-z)
|
||||
PLATFORM_RELEASE=$(shell uname -r)
|
||||
ARCH:=$(shell uname -m | sed -e s/i.86/i386/)
|
||||
ifndef COPYDIR
|
||||
|
@ -42,6 +42,9 @@ BUILD_NAME=quake3
|
|||
|
||||
BUILD_FREETYPE=0
|
||||
|
||||
# Used for building with mingw
|
||||
DXSDK_DIR=C:/DXSDK
|
||||
|
||||
#############################################################################
|
||||
##
|
||||
## You shouldn't have to touch anything below here
|
||||
|
@ -55,6 +58,7 @@ SDIR=$(MOUNT_DIR)/server
|
|||
RDIR=$(MOUNT_DIR)/renderer
|
||||
CMDIR=$(MOUNT_DIR)/qcommon
|
||||
UDIR=$(MOUNT_DIR)/unix
|
||||
W32DIR=$(MOUNT_DIR)/win32
|
||||
GDIR=$(MOUNT_DIR)/game
|
||||
CGDIR=$(MOUNT_DIR)/cgame
|
||||
BAIDIR=$(GDIR)
|
||||
|
@ -209,6 +213,84 @@ ifeq ($(PLATFORM),linux)
|
|||
|
||||
else # ifeq Linux
|
||||
|
||||
#############################################################################
|
||||
# SETUP AND BUILD -- MINGW32
|
||||
#############################################################################
|
||||
|
||||
ifeq ($(PLATFORM),mingw32)
|
||||
|
||||
GLIBC=-mingw
|
||||
CC=gcc
|
||||
CXX=g++
|
||||
WINDRES=windres
|
||||
|
||||
ifeq ($(ARCH),i386)
|
||||
ARCH=x86
|
||||
endif
|
||||
|
||||
RPMARCH=$(ARCH)
|
||||
|
||||
BASE_CFLAGS = -pipe -Wall -Wimplicit -Wstrict-prototypes
|
||||
|
||||
ifeq ($(strip $(DLL_ONLY)),true)
|
||||
BASE_CFLAGS += -DDLL_ONLY
|
||||
endif
|
||||
|
||||
DX_CFLAGS = -I$(DXSDK_DIR)/Include
|
||||
|
||||
GL_CFLAGS =
|
||||
MINGW_CFLAGS = -DDONT_TYPEDEF_INT32
|
||||
|
||||
OPTIMIZE = -O3 -march=i686 -fomit-frame-pointer -ffast-math -falign-loops=2 -falign-jumps=2 -falign-functions=2 -fno-strict-aliasing -fstrength-reduce
|
||||
BASE_CFLAGS += -DHAVE_VM_NATIVE -DHAVE_VM_COMPILED
|
||||
|
||||
DEBUG_CFLAGS=$(BASE_CFLAGS) -g -O0
|
||||
|
||||
RELEASE_CFLAGS=$(BASE_CFLAGS) -DNDEBUG $(OPTIMIZE)
|
||||
|
||||
LIBEXT=lib
|
||||
|
||||
SHLIBEXT=dll
|
||||
SHLIBCFLAGS=
|
||||
SHLIBLDFLAGS=-shared $(LDFLAGS)
|
||||
|
||||
AR=ar
|
||||
ARFLAGS=rv
|
||||
RANLIB=ranlib
|
||||
|
||||
THREAD_LDFLAGS=-lpthread
|
||||
LDFLAGS= -mwindows -lwsock32 -lgdi32 -lwinmm -lole32
|
||||
GLLDFLAGS=
|
||||
|
||||
ifeq ($(BUILD_FREETYPE),1)
|
||||
RELEASE_CFLAGS += $(shell pkg-config --cflags freetype2) -DBUILD_FREETYPE
|
||||
DEBUG_CFLAGS += $(shell pkg-config --cflags freetype2) -DBUILD_FREETYPE
|
||||
LDFLAGS += $(shell pkg-config --libs freetype2)
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),x86)
|
||||
# build 32bit
|
||||
BASE_CFLAGS += -m32
|
||||
LDFLAGS+=-m32
|
||||
endif
|
||||
|
||||
TARGETS=\
|
||||
$(B)/$(PLATFORM)quake3 \
|
||||
$(B)/baseq3/cgame$(ARCH).$(SHLIBEXT) \
|
||||
$(B)/baseq3/qagame$(ARCH).$(SHLIBEXT) \
|
||||
$(B)/baseq3/ui$(ARCH).$(SHLIBEXT) \
|
||||
$(B)/missionpack/cgame$(ARCH).$(SHLIBEXT) \
|
||||
$(B)/missionpack/qagame$(ARCH).$(SHLIBEXT) \
|
||||
$(B)/missionpack/ui$(ARCH).$(SHLIBEXT)
|
||||
# $(B)/baseq3/vm/qagame.qvm \
|
||||
# $(B)/baseq3/vm/cgame.qvm \
|
||||
# $(B)/baseq3/vm/ui.qvm \
|
||||
# $(B)/missionpack/vm/qagame.qvm \
|
||||
# $(B)/missionpack/vm/cgame.qvm \
|
||||
# $(B)/missionpack/vm/ui.qvm
|
||||
|
||||
else # ifeq mingw32
|
||||
|
||||
#############################################################################
|
||||
# SETUP AND BUILD -- FREEBSD
|
||||
#############################################################################
|
||||
|
@ -334,6 +416,7 @@ TARGETS=\
|
|||
$(B)/$(PLATFORM)q3ded
|
||||
|
||||
endif #Linux
|
||||
endif #mingw32
|
||||
endif #FreeBSD
|
||||
endif #IRIX
|
||||
|
||||
|
@ -351,6 +434,7 @@ DO_SHLIB_DEBUG_CC=$(CC) $(DEBUG_CFLAGS) $(SHLIBCFLAGS) -o $@ -c $<
|
|||
DO_AS=$(CC) $(CFLAGS) -DELF -x assembler-with-cpp -o $@ -c $<
|
||||
DO_NASM=nasm -f elf -o $@ $<
|
||||
DO_DED_CC=$(CC) -DDEDICATED -DC_ONLY $(CFLAGS) -o $@ -c $<
|
||||
DO_WINDRES=$(WINDRES) -i $< -o $@
|
||||
|
||||
#DO_LCC=$(LCC) -o $@ -S -Wf-target=bytecode -Wf-g -DQ3_VM -I$(CGDIR) -I$(GDIR) -I$(UIDIR) $<
|
||||
|
||||
|
@ -532,15 +616,16 @@ Q3OBJ = \
|
|||
$(B)/client/tr_sky.o \
|
||||
$(B)/client/tr_surface.o \
|
||||
$(B)/client/tr_world.o \
|
||||
\
|
||||
$(B)/client/unix_main.o \
|
||||
$(B)/client/unix_net.o \
|
||||
$(B)/client/unix_shared.o \
|
||||
|
||||
|
||||
ifeq ($(ARCH),i386)
|
||||
Q3OBJ += $(B)/client/vm_x86.o
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),x86)
|
||||
Q3OBJ += $(B)/client/vm_x86.o
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),x86_64)
|
||||
Q3OBJ += $(B)/client/vm_none.o
|
||||
endif
|
||||
|
@ -556,6 +641,9 @@ Q3OBJ = \
|
|||
#platform specific objects
|
||||
ifeq ($(PLATFORM),freebsd)
|
||||
Q3POBJ=\
|
||||
$(B)/client/unix_main.o \
|
||||
$(B)/client/unix_net.o \
|
||||
$(B)/client/unix_shared.o \
|
||||
$(B)/client/linux_signals.o \
|
||||
$(B)/client/linux_common.o \
|
||||
$(B)/client/linux_qgl.o \
|
||||
|
@ -570,15 +658,38 @@ ifeq ($(PLATFORM),freebsd)
|
|||
else
|
||||
ifeq ($(PLATFORM),irix)
|
||||
Q3POBJ=\
|
||||
$(B)/client/unix_main.o \
|
||||
$(B)/client/unix_net.o \
|
||||
$(B)/client/unix_shared.o \
|
||||
$(B)/client/irix_qgl.o \
|
||||
$(B)/client/irix_glimp.o \
|
||||
$(B)/client/irix_snd.o
|
||||
else
|
||||
ifeq ($(PLATFORM),mingw32)
|
||||
Q3POBJ=\
|
||||
$(B)/client/linux_common.o \
|
||||
$(B)/client/snd_mixa.o \
|
||||
$(B)/client/matha.o \
|
||||
$(B)/client/win_gamma.o \
|
||||
$(B)/client/win_glimp.o \
|
||||
$(B)/client/win_input.o \
|
||||
$(B)/client/win_main.o \
|
||||
$(B)/client/win_net.o \
|
||||
$(B)/client/win_qgl.o \
|
||||
$(B)/client/win_shared.o \
|
||||
$(B)/client/win_snd.o \
|
||||
$(B)/client/win_syscon.o \
|
||||
$(B)/client/win_wndproc.o \
|
||||
$(B)/client/win_resource.o
|
||||
else
|
||||
ifeq ($(PLATFORM),linux)
|
||||
ifeq ($(ARCH),axp)
|
||||
Q3POBJ=
|
||||
else
|
||||
Q3POBJ=\
|
||||
$(B)/client/unix_main.o \
|
||||
$(B)/client/unix_net.o \
|
||||
$(B)/client/unix_shared.o \
|
||||
$(B)/client/linux_signals.o \
|
||||
$(B)/client/linux_common.o \
|
||||
$(B)/client/linux_qgl.o \
|
||||
|
@ -591,6 +702,9 @@ else
|
|||
$(B)/client/matha.o \
|
||||
|
||||
Q3POBJ_SMP=\
|
||||
$(B)/client/unix_main.o \
|
||||
$(B)/client/unix_net.o \
|
||||
$(B)/client/unix_shared.o \
|
||||
$(B)/client/linux_signals.o \
|
||||
$(B)/client/linux_common.o \
|
||||
$(B)/client/linux_qgl.o \
|
||||
|
@ -606,10 +720,11 @@ else
|
|||
Q3POBJ_SMP += $(B)/client/ftol.o $(B)/client/snapvector.o
|
||||
endif
|
||||
|
||||
endif
|
||||
endif #Linux-axp
|
||||
endif #Linux
|
||||
endif #FreeBSD
|
||||
endif #mingw32
|
||||
endif #IRIX
|
||||
endif #FreeBSD
|
||||
|
||||
$(B)/$(PLATFORM)quake3 : $(Q3OBJ) $(Q3POBJ)
|
||||
$(CC) -o $@ $(Q3OBJ) $(Q3POBJ) $(GLLDFLAGS) $(LDFLAGS)
|
||||
|
@ -719,10 +834,10 @@ $(B)/client/jdmaster.o : $(JPDIR)/jdmaster.c; $(DO_CC)
|
|||
$(B)/client/jdpostct.o : $(JPDIR)/jdpostct.c; $(DO_CC)
|
||||
$(B)/client/jdsample.o : $(JPDIR)/jdsample.c; $(DO_CC)
|
||||
$(B)/client/jdtrans.o : $(JPDIR)/jdtrans.c; $(DO_CC)
|
||||
$(B)/client/jerror.o : $(JPDIR)/jerror.c; $(DO_CC) $(GL_CFLAGS)
|
||||
$(B)/client/jerror.o : $(JPDIR)/jerror.c; $(DO_CC) $(GL_CFLAGS) $(MINGW_CFLAGS)
|
||||
$(B)/client/jidctflt.o : $(JPDIR)/jidctflt.c; $(DO_CC)
|
||||
$(B)/client/jmemmgr.o : $(JPDIR)/jmemmgr.c; $(DO_CC)
|
||||
$(B)/client/jmemnobs.o : $(JPDIR)/jmemnobs.c; $(DO_CC) $(GL_CFLAGS)
|
||||
$(B)/client/jmemnobs.o : $(JPDIR)/jmemnobs.c; $(DO_CC) $(GL_CFLAGS) $(MINGW_CFLAGS)
|
||||
$(B)/client/jutils.o : $(JPDIR)/jutils.c; $(DO_CC)
|
||||
|
||||
$(B)/client/tr_bsp.o : $(RDIR)/tr_bsp.c; $(DO_CC) $(GL_CFLAGS)
|
||||
|
@ -732,7 +847,7 @@ $(B)/client/tr_cmds.o : $(RDIR)/tr_cmds.c; $(DO_CC) $(GL_CFLAGS)
|
|||
$(B)/client/tr_curve.o : $(RDIR)/tr_curve.c; $(DO_CC) $(GL_CFLAGS)
|
||||
$(B)/client/tr_flares.o : $(RDIR)/tr_flares.c; $(DO_CC) $(GL_CFLAGS)
|
||||
$(B)/client/tr_font.o : $(RDIR)/tr_font.c; $(DO_CC) $(GL_CFLAGS)
|
||||
$(B)/client/tr_image.o : $(RDIR)/tr_image.c; $(DO_CC) $(GL_CFLAGS)
|
||||
$(B)/client/tr_image.o : $(RDIR)/tr_image.c; $(DO_CC) $(GL_CFLAGS) $(MINGW_CFLAGS)
|
||||
$(B)/client/tr_init.o : $(RDIR)/tr_init.c; $(DO_CC) $(GL_CFLAGS)
|
||||
$(B)/client/tr_light.o : $(RDIR)/tr_light.c; $(DO_CC) $(GL_CFLAGS)
|
||||
$(B)/client/tr_main.o : $(RDIR)/tr_main.c; $(DO_CC) $(GL_CFLAGS)
|
||||
|
@ -773,12 +888,28 @@ $(B)/client/sdl_snd.o : $(UDIR)/sdl_snd.c; $(DO_CC)
|
|||
$(B)/client/snd_mixa.o : $(UDIR)/snd_mixa.s; $(DO_AS)
|
||||
$(B)/client/matha.o : $(UDIR)/matha.s; $(DO_AS)
|
||||
|
||||
$(B)/client/win_gamma.o : $(W32DIR)/win_gamma.c; $(DO_CC) $(DX_CFLAGS)
|
||||
$(B)/client/win_glimp.o : $(W32DIR)/win_glimp.c; $(DO_CC) $(DX_CFLAGS)
|
||||
$(B)/client/win_input.o : $(W32DIR)/win_input.c; $(DO_CC) $(DX_CFLAGS)
|
||||
$(B)/client/win_main.o : $(W32DIR)/win_main.c; $(DO_CC) $(DX_CFLAGS)
|
||||
$(B)/client/win_net.o : $(W32DIR)/win_net.c; $(DO_CC) $(DX_CFLAGS)
|
||||
$(B)/client/win_qgl.o : $(W32DIR)/win_qgl.c; $(DO_CC) $(DX_CFLAGS)
|
||||
$(B)/client/win_shared.o : $(W32DIR)/win_shared.c; $(DO_CC) $(DX_CFLAGS)
|
||||
$(B)/client/win_snd.o : $(W32DIR)/win_snd.c; $(DO_CC) $(DX_CFLAGS)
|
||||
$(B)/client/win_syscon.o : $(W32DIR)/win_syscon.c; $(DO_CC) $(DX_CFLAGS)
|
||||
$(B)/client/win_wndproc.o : $(W32DIR)/win_wndproc.c; $(DO_CC) $(DX_CFLAGS)
|
||||
$(B)/client/win_resource.o : $(W32DIR)/winquake.rc; $(DO_WINDRES)
|
||||
|
||||
ifeq ($(ARCH),i386)
|
||||
$(B)/client/ftol.o : $(UDIR)/ftol.nasm; $(DO_NASM)
|
||||
$(B)/client/snapvector.o : $(UDIR)/snapvector.nasm; $(DO_NASM)
|
||||
$(B)/client/vm_x86.o : $(CMDIR)/vm_x86.c; $(DO_CC)
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),x86)
|
||||
$(B)/client/vm_x86.o : $(CMDIR)/vm_x86.c; $(DO_CC)
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH),x86_64)
|
||||
$(B)/client/vm_none.o : $(CMDIR)/vm_none.c; $(DO_CC)
|
||||
endif
|
||||
|
@ -944,6 +1075,7 @@ $(B)/ded/linux_common.o : $(UDIR)/linux_common.c; $(DO_DED_CC)
|
|||
$(B)/ded/unix_main.o : $(UDIR)/unix_main.c; $(DO_DED_CC)
|
||||
$(B)/ded/unix_net.o : $(UDIR)/unix_net.c; $(DO_DED_CC)
|
||||
$(B)/ded/unix_shared.o : $(UDIR)/unix_shared.c; $(DO_DED_CC)
|
||||
|
||||
$(B)/ded/null_client.o : $(NDIR)/null_client.c; $(DO_DED_CC)
|
||||
$(B)/ded/null_input.o : $(NDIR)/null_input.c; $(DO_DED_CC)
|
||||
$(B)/ded/null_snddma.o : $(NDIR)/null_snddma.c; $(DO_DED_CC)
|
||||
|
|
|
@ -22,6 +22,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|||
#ifndef __ASM_I386__
|
||||
#define __ASM_I386__
|
||||
|
||||
#ifdef __MINGW32__
|
||||
#undef ELF
|
||||
#endif
|
||||
|
||||
#ifdef ELF
|
||||
#define C(label) label
|
||||
#else
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue