dxx-rebirth/makefile

187 lines
3.5 KiB
Makefile
Raw Normal View History

2006-03-20 16:43:15 +00:00
TOPDIR = .
include $(TOPDIR)/makefile.config
SUBDIRS = arch maths 2d 3d texmap misc mem iff cfile main
#defines controlling the output filename
ifdef MAKE_EDITOR
SUBDIRS += editor ui
D1XPREFIX = m
else
D1XPREFIX = d
endif
ifdef ENV_MINGW32
EXT=mw.exe
endif
ifdef D1XD3D
EXT=3d.exe
endif
ifdef SHAREWARE
SHRWR = sh
endif
ifdef DEBUG
DBG = db
endif
ifdef OGL
OPT = ogl
endif
OUTPUT = $(DESTDIR)/$(D1XPREFIX)1x$(D1XMAJOR)$(D1XMINOR)$(SHRWR)$(DBG)$(SND)$(OPT)$(EXT)
#libraries to link with
LIBS = \
$(LIBDIR)main.$(ARC) \
$(LIBDIR)3d.$(ARC) \
$(LIBDIR)2d.$(ARC) \
$(LIBDIR)iff.$(ARC) \
$(LIBDIR)maths.$(ARC) \
$(LIBDIR)cfile.$(ARC) \
$(LIBDIR)mem.$(ARC) \
$(LIBDIR)misc.$(ARC) \
$(LIBDIR)texmap.$(ARC) \
$(LIBDIR)io.$(ARC)
#defines for dxbase mode
ifdef DXBASE
CFLAGS += -I$(DXBASE)/include
LINKLIBS += -L$(DXBASE)/lib
endif
ifdef D1XD3D
LIBS += $(LIBDIR)d3dframe.$(ARC)
endif
ifdef OGL
LIBS += $(LIBDIR)ogl.$(ARC)
endif
ifdef SDLGL_IO
LINKLIBS += -lGL -lGLU
endif
ifdef GLX_IO
LINKLIBS += -L/usr/X11R6/lib
ifndef OGL_RUNTIME
LINKLIBS += -lGL
endif
LINKLIBS += -lGLU -lm -lX11 -lXext
endif
ifdef MAKE_EDITOR
NO_RL2 = 1
LIBS += $(LIBDIR)editor.$(ARC) $(LIBDIR)ui.$(ARC)
E_CFLAGS += -DEDITOR -I.
ifdef ENV_LINUX
LINKLIBS += -lm
endif
endif
ifdef ENV_MINGW32
ifdef WGL_IO
ifndef OGL_RUNTIME
LIBS += -lopengl32
endif
LIBS += -lglu32 -lgdi32
endif
LIBS += -ldinput -lddraw -ldsound -ldxguid -lwsock32 -lwinmm -luser32 -lkernel32
# LIBS += $(LIBDIR)d1x_res.$(OBJ)
endif
ifdef ENV_MSVC
LINKLIBS += dinput.lib ddraw.lib dsound.lib dxguid.lib wsock32.lib \
winmm.lib user32.lib kernel32.lib gdi32.lib
# LIBS += $(LIBDIR)d1x.res
ifdef DEBUG
LINKLIBS += msvcrtd.lib
else
LINKLIBS += msvcrt.lib
endif
ifdef RELEASE
LFLAGS = -OPT:REF -PDB:NONE
else
LFLAGS = -DEBUG -DEBUGTYPE:CV -PDB:$(LIBDIR)
endif
endif
ifdef ENV_LINUX
ifdef SDL
LIBS += $(LIBDIR)sdl.$(ARC)
ifdef STATICSDL
LINKLIBS += $(STATICSDL) -ldl -L/usr/X11R6/lib -lX11 -lXext -lXxf86dga -lXxf86vm
else
LINKLIBS += -ldl -lSDL
endif
endif
ifdef SVGALIB
LIBS += $(LIBDIR)svgalib.$(ARC)
LINKLIBS += -lvga -lvgagl
endif
ifdef GGI
LIBS += $(LIBDIR)ggi.$(ARC)
endif
endif
ifdef SCRIPT
LIBS += $(LIBDIR)script.$(ARC)
E_CFLAGS += -DSCRIPT
ifdef GGI_VIDEO
LINKLIBS += -lggi
endif
ifdef GII_INPUT
LINKLIBS += -lgii
endif
ifdef GLIBC
LINKLIBS += -lpthread
endif
NASM = nasm -f elf -d__LINUX__
endif
default: $(OUTPUT)
$(DESTDIR):
mkdir $(DESTDIR)
include $(TOPDIR)/makefile.rules
#rule for building the descent binary
ifdef ENV_MSVC
$(OUTPUT): $(DESTDIR) $(SUBDIRS)
link $(LFLAGS) -out:$(OUTPUT) -machine:i386 -subsystem:console $(LIBS) $(LINKLIBS)
else
$(OUTPUT): $(DESTDIR) $(SUBDIRS)
$(CC) $(LFLAGS) -o $@ $(LIBS) $(LINKLIBS)
ifdef RELEASE
ifndef DEBUGABLE
strip --strip-all $(OUTPUT)
endif
endif
endif
#rule for building the ip daemon
ifdef SUPPORTS_NET_IP
IP_DAEMON_OUTPUT=$(DESTDIR)/$(D1XPREFIX)1x$(D1XMAJOR)$(D1XMINOR)$(DBG)$(EXT)_ip_daemon
IP_DAEMON_LIBS=$(TOPDIR)/main/$(OBJDIR)ipserver.$(OBJ) $(TOPDIR)/arch/linux/$(OBJDIR)arch_ip.$(OBJ) $(TOPDIR)/main/$(OBJDIR)ip_base.$(OBJ) $(TOPDIR)/arch/linux/$(OBJDIR)timer.$(OBJ) $(TOPDIR)/arch/linux/$(OBJDIR)mono.$(OBJ) $(TOPDIR)/main/$(OBJDIR)args.$(OBJ) $(TOPDIR)/mem/$(OBJDIR)mem.$(OBJ) $(TOPDIR)/misc/$(OBJDIR)strio.$(OBJ) $(TOPDIR)/misc/$(OBJDIR)strutil.$(OBJ) $(TOPDIR)/misc/$(OBJDIR)error.$(OBJ) $(TOPDIR)/lib/maths.a
ip_daemon: $(IP_DAEMON_OUTPUT)
$(IP_DAEMON_OUTPUT): $(SUBDIRS)
$(CXX) $(LFLAGS) -o $(IP_DAEMON_OUTPUT) $(IP_DAEMON_LIBS)
endif
clean:
-rm $(OUTPUT)
-rm $(IP_DAEMON_OUTPUT)
$(CLEANSUBS)
depend:
$(DEPSUBS)