dxx-rebirth/makefile
2006-04-03 20:00:46 +00:00

138 lines
2.6 KiB
Makefile
Executable file

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 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.$(LIB) \
$(LIBDIR)/3d.$(LIB) \
$(LIBDIR)/2d.$(LIB) \
$(LIBDIR)/iff.$(LIB) \
$(LIBDIR)/maths.$(LIB) \
$(LIBDIR)/cfile.$(LIB) \
$(LIBDIR)/mem.$(LIB) \
$(LIBDIR)/misc.$(LIB) \
$(LIBDIR)/texmap.$(LIB) \
$(LIBDIR)/io.$(LIB)
ifdef OGL
LIBS += $(LIBDIR)/ogl.$(LIB)
endif
ifdef MAKE_EDITOR
NO_RL2 = 1
LIBS += $(LIBDIR)/editor.$(LIB) $(LIBDIR)/ui.$(LIB)
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_LINUX
ifdef SDLGL_IO
LINKLIBS += -lGL -lGLU
endif
ifdef SDL
LIBS += $(LIBDIR)/sdl.$(LIB)
LINKLIBS += -ldl -lSDL
endif
endif
ifdef SCRIPT
LIBS += $(LIBDIR)/script.$(LIB)
E_CFLAGS += -DSCRIPT
ifdef GLIBC
LINKLIBS += -lpthread
endif
NASM = nasm -f elf -d__LINUX__
endif
default: $(OUTPUT)
$(DESTDIR):
ifeq ($(ENV_MINGW32),1)
ifneq ($(HAVE_MSYS),1)
mkdir $(subst /,\,$(DESTDIR))
else
mkdir $(DESTDIR)
endif
else
mkdir $(DESTDIR)
endif
include $(TOPDIR)/makefile.rules
#rule for building the descent binary
$(OUTPUT): $(DESTDIR) $(SUBDIRS)
ifdef SUPPORTS_NET_IP
$(CXX) $(LFLAGS) -o $@ $(LIBS) $(LINKLIBS)
else
$(CC) $(LFLAGS) -o $@ $(LIBS) $(LINKLIBS)
endif
ifdef RELEASE
ifndef DEBUGABLE
strip --strip-all $(OUTPUT)
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:
$(CLEANSUBS)
-rm $(OUTPUT)
-rm $(IP_DAEMON_OUTPUT)
-rm -r $(LIBDIR)/
depend:
$(DEPSUBS)