mirror of
https://github.com/galaxyhaxz/devilution
synced 2024-11-14 16:29:02 +00:00
86 lines
3 KiB
Text
86 lines
3 KiB
Text
|
VC5_DIR ?= $(HOME)/DevStudio_5.10/VC
|
||
|
|
||
|
# The $(VS6_DIR) directory is a copy of the "Microsoft Visual Studio" directory.
|
||
|
#
|
||
|
# To get a working setup on Linux or other "portable" copies of VS,
|
||
|
# the following DLLs have to be copied to the
|
||
|
# $(VS6_DIR)/VC98/Bin directory.
|
||
|
#
|
||
|
# - $(VS6_DIR)/Common/MSDev98/Bin/MSPDB60.DLL
|
||
|
#
|
||
|
# And to the $(VC5_DIR)/bin directory.
|
||
|
#
|
||
|
# - $(VC5_DIR)/SharedIDE/bin/MSDIS100.DLL
|
||
|
# - $(VC5_DIR)/SharedIDE/bin/MSPDB50.DLL
|
||
|
VS6_DIR ?= $(HOME)/VS6
|
||
|
|
||
|
VC6_DIR = $(VS6_DIR)/VC98
|
||
|
|
||
|
VC6_BIN_DIR = $(VC6_DIR)/Bin
|
||
|
VC6_INC_DIR = $(VC6_DIR)/Include
|
||
|
VC6_LIB_DIR = $(VC6_DIR)/Lib
|
||
|
|
||
|
VC5_LIB_DIR = $(VC5_DIR)/lib
|
||
|
|
||
|
IDE_DIR ?= $(VS6_DIR)/Common/MSDev98
|
||
|
IDE_BIN_DIR = $(IDE_DIR)/bin
|
||
|
ifeq ($(OS),Windows_NT)
|
||
|
CL = $(VC6_BIN_DIR)/CL.EXE
|
||
|
RC = $(IDE_BIN_DIR)/RC.EXE
|
||
|
VC5_LINK = $(VC5_DIR)/bin/link.exe
|
||
|
VC6_LINK = $(VC6_BIN_DIR)/link.exe
|
||
|
else
|
||
|
CL = wine $(VC6_BIN_DIR)/CL.EXE
|
||
|
RC = wine $(IDE_BIN_DIR)/RC.EXE
|
||
|
VC5_LINK = wine $(VC5_DIR)/bin/link.exe
|
||
|
VC6_LINK = wine $(VC6_BIN_DIR)/link.exe
|
||
|
endif
|
||
|
|
||
|
CFLAGS=/nologo /c /GX /W3 /O1 /I $(VC6_INC_DIR) /FD /Gr /MT /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /Fp"Diablo.pch" /YX /Gm /Zi
|
||
|
LINKFLAGS=/nologo /subsystem:windows /machine:I386 /incremental:no
|
||
|
|
||
|
ifeq ($(MAKE_BUILD),pdb)
|
||
|
VC_LINK = $(VC6_LINK)
|
||
|
LINKFLAGS += /pdb:"Diablo.pdb" /LIBPATH:$(VC6_LIB_DIR) /debug
|
||
|
else
|
||
|
VC_LINK=$(VC5_LINK)
|
||
|
LINKFLAGS+= /LIBPATH:$(VC5_LIB_DIR)
|
||
|
endif
|
||
|
|
||
|
all: Diablo.exe
|
||
|
|
||
|
# fix compilation order to match the VC6 workspace files and exclude local assembly functions
|
||
|
DIABLO_SRC=$(sort $(filter-out Source/_asm.cpp Source/_render.cpp Source/render.cpp, $(wildcard Source/*.cpp)))
|
||
|
DIABLO_SRC += Source/render.cpp
|
||
|
OBJS=$(DIABLO_SRC:.cpp=.obj)
|
||
|
|
||
|
STORM_SRC=$(sort $(wildcard 3rdParty/Storm/Source/*.cpp))
|
||
|
STORM_OBJS=$(STORM_SRC:.cpp=.obj)
|
||
|
|
||
|
DIABLOUI_SRC=DiabloUI/diabloui.cpp
|
||
|
DIABLOUI_OBJS=$(DIABLOUI_SRC:.cpp=.obj)
|
||
|
|
||
|
Diablo.exe: main_files diablo.res DiabloUI/diabloui.lib 3rdParty/Storm/Source/storm.lib
|
||
|
$(VC_LINK) /OUT:$@ $(LINKFLAGS) $(OBJS) diablo.res advapi32.lib gdi32.lib shell32.lib user32.lib version.lib DiabloUI/diabloui.lib 3rdParty/Storm/Source/storm.lib 3rdParty/Pkware/implode.lib
|
||
|
|
||
|
DiabloUI/diabloui.lib: $(DIABLOUI_OBJS) 3rdParty/Storm/Source/storm.lib
|
||
|
$(CL) $^ /link /LINK50COMPAT /nologo /dll /subsystem:windows /machine:I386 /LIBPATH:$(VC6_LIB_DIR) DiabloUI/diabloui.res advapi32.lib gdi32.lib shell32.lib user32.lib version.lib 3rdParty/Storm/Source/storm.lib /def:"DiabloUI/diabloui.def" /out:DiabloUI/diabloui.dll
|
||
|
|
||
|
3rdParty/Storm/Source/storm.lib: $(STORM_OBJS)
|
||
|
$(CL) $^ /link /LINK50COMPAT /nologo /dll /subsystem:windows /machine:I386 /LIBPATH:$(VC6_LIB_DIR) /def:"3rdParty/Storm/Source/storm.def" /out:3rdParty/Storm/Source/storm.dll
|
||
|
|
||
|
# compiles all main source files with once compiler call
|
||
|
main_files:
|
||
|
$(CL) $(CFLAGS) /FoSource/ $(DIABLO_SRC)
|
||
|
|
||
|
%.obj: %.cpp
|
||
|
$(CL) $(CFLAGS) /Fo$@ $<
|
||
|
|
||
|
diablo.res: Diablo.rc
|
||
|
$(RC) /i $(VC6_INC_DIR) /i $(VC6_DIR)/MFC/Include /l 0x409 /fo $@ $<
|
||
|
|
||
|
clean:
|
||
|
@$(RM) -v $(OBJS) $(STORM_OBJS) $(DIABLOUI_OBJS) DiabloUI/diabloui.{exp,lib,dll} 3rdParty/Storm/Source/storm.{exp,lib,dll}
|
||
|
|
||
|
.PHONY: clean all
|