Browse Source

Add Makefile for compiling with VC on Linux (#94)

pull/4/head
Robin Eklind 8 years ago committed by galaxyhaxz
parent
commit
e3a51ed1d1
  1. 11
      .gitignore
  2. 47
      MakefileVC

11
.gitignore vendored

@ -1,9 +1,20 @@
# ELF object file.
*.o
# PE shared library and associated files.
*.lib
*.exp
*.dll
# PE executable.
*.exe
# GCC dependency file.
*.d
# Resource file.
*.res
# Created by https://www.gitignore.io/api/visualstudio
### VisualStudio ###

47
MakefileVC

@ -0,0 +1,47 @@
VC_DIR ?= $(HOME)/DevStudio/VC
VC_BIN_DIR = $(VC_DIR)/bin
VC_INC_DIR = $(VC_DIR)/include
VC_LIB_DIR = $(VC_DIR)/lib
IDE_DIR ?= $(HOME)/DevStudio/SharedIDE
IDE_BIN_DIR = $(IDE_DIR)/bin
ifeq ($(OS),Windows_NT)
CL = $(VC_BIN_DIR)/CL.EXE
RC = $(IDE_BIN_DIR)/RC.EXE
else
CL = wine $(VC_BIN_DIR)/CL.EXE
RC = wine $(IDE_BIN_DIR)/RC.EXE
endif
all: devilution.exe
DIABLO_SRC=$(sort $(wildcard Source/*.cpp))
OBJS=$(DIABLO_SRC:.cpp=.obj)
PKWARE_SRC=$(sort $(wildcard 3rdParty/PKWare/*.cpp))
PKWARE_OBJS=$(PKWARE_SRC:.cpp=.obj)
STORM_SRC=$(sort $(wildcard 3rdParty/Storm/Source/*.cpp))
STORM_OBJS=$(STORM_SRC:.cpp=.obj)
DIABLOUI_SRC=$(sort $(wildcard DiabloUI/*.cpp))
DIABLOUI_OBJS=$(DIABLOUI_SRC:.cpp=.obj)
devilution.exe: $(OBJS) $(PKWARE_OBJS) diablo.res DiabloUI/diabloui.lib 3rdParty/Storm/Source/storm.lib
$(CL) /nologo /Fe$@ $(OBJS) $(PKWARE_OBJS) diablo.res /link /LIBPATH:$(VC_LIB_DIR) advapi32.lib gdi32.lib shell32.lib user32.lib version.lib DiabloUI/diabloui.lib 3rdParty/Storm/Source/storm.lib
DiabloUI/diabloui.lib: $(DIABLOUI_OBJS)
$(CL) $^ /link /nologo /dll /subsystem:windows /machine:I386 /LIBPATH:$(VC_LIB_DIR) /def:"DiabloUI/diabloui.def" /out:DiabloUI/diabloui.dll
3rdParty/Storm/Source/storm.lib: $(STORM_OBJS)
$(CL) $^ /link /nologo /dll /subsystem:windows /machine:I386 /LIBPATH:$(VC_LIB_DIR) /def:"3rdParty/Storm/Source/storm.def" /out:3rdParty/Storm/Source/storm.dll
%.obj: %.cpp
$(CL) /nologo /c /O1 /W3 /MT /I $(VC_INC_DIR) /Fo$@ $<
diablo.res: Diablo.rc
$(RC) /i $(VC_INC_DIR) /i $(VC_DIR)/mfc/include /l 0x409 /fo $@ $<
clean:
@$(RM) -v $(OBJS) $(PKWARE_OBJS) $(STORM_OBJS) $(DIABLOUI_OBJS) DiabloUI/diabloui.{exp,lib,dll} 3rdParty/Storm/Source/storm.{exp,lib,dll}
.PHONY: clean all
Loading…
Cancel
Save