Browse Source

VS style for Vista+; pure mingw makefile added ( previous makefile is msys-style )

Pal Lockheart 7 years ago
parent
commit
540c842c70
4 changed files with 75 additions and 0 deletions
  1. 10 0
      win32/Application.manifest
  2. 59 0
      win32/Makefile.mingw
  3. 1 0
      win32/resources.rc
  4. 5 0
      win32/win32.cpp

+ 10 - 0
win32/Application.manifest

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+	<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.YourApplication" type="win32" />
+	<description>Your application description here.</description>
+	<dependency>
+		<dependentAssembly>
+			<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" />
+		</dependentAssembly>
+	</dependency>
+</assembly>

+ 59 - 0
win32/Makefile.mingw

@@ -0,0 +1,59 @@
+# Makefile for win32 platforms with mingw
+
+TARGET = sdlpal.exe
+TEST_TARGET = sdlpal-tests.exe
+
+HOST =
+TEST_CCFLAGS =
+
+GTEST_DIR = ../3rd/googletest/googletest
+
+CFILES = $(wildcard ../adplug/*.c) $(wildcard ../libmad/*.c) $(wildcard ../liboggvorbis/src/*.c) $(wildcard ../*.c) ../native_midi/native_midi_win32.c ../native_midi/native_midi_common.c
+CPPFILES = $(wildcard ../adplug/*.cpp) $(wildcard ../*.cpp) $(wildcard ./*.cpp)
+RCFILES = $(wildcard ./*.rc)
+OBJFILES = $(CFILES:.c=.o) $(CPPFILES:.cpp=.o) $(RCFILES:.rc=.o)
+TEST_CPPFILES = $(wildcard ../tests/*.cpp)
+TEST_OBJFILES = $(TEST_CPPFILES:.cpp=.o)
+
+override CCFLAGS = -g -msse -Wall -O2 -fno-strict-aliasing -I. -I../ -I../liboggvorbis/include -I../liboggvorbis/src -DPAL_HAS_PLATFORM_SPECIFIC_UTILS $(TEST_CCFLAGS)
+CXXFLAGS = $(CCFLAGS) -std=c++11 
+CFLAGS = $(CCFLAGS) -std=gnu99
+LDFLAGS = -lmingw32 -lSDL2main -lSDL2 -mwindows -lm -lwinmm -lole32 -loleaut32 -limm32 -lcomctl32 -luuid -ldxguid -lversion -static -static-libgcc -static-libstdc++
+TEST_CXXFLAGS += -isystem $(GTEST_DIR)/include -I $(GTEST_DIR) -g -Wall -Wextra -pthread
+
+.PHONY : all clean check
+
+all: $(TARGET)
+
+$(TARGET): $(OBJFILES)
+	@echo [LD] $@
+	@$(HOST)g++ $^ -o $@ $(LDFLAGS)
+
+gtest-all.o : $(GTEST_DIR)/src/gtest-all.cc
+	@echo [CC] $^
+	@$(HOST)g++ $(TEST_CXXFLAGS) -c $^ -o $@
+
+%.o: %.c
+	@echo [CC] $^
+	@$(HOST)gcc $(CFLAGS) -c $^ -o $@
+
+%.o: %.cpp
+	@echo [CC] $^
+	@$(HOST)g++ $(CXXFLAGS) -c $^ -o $@
+
+%.o: %.rc
+	@echo [RES] $^
+	@windres -i $^ -o $@
+
+$(TEST_TARGET): $(OBJFILES) $(TEST_OBJFILES) gtest-all.o
+	@echo [LD] $@
+	@$(HOST)g++ $^ -o $@ $(LDFLAGS) -pthread
+
+clean:
+	-del /Q $(subst /,\,$(TARGET)) $(subst /,\,$(TEST_TARGET)) $(subst /,\,$(OBJFILES)) $(subst /,\,$(TEST_OBJFILES))
+
+check: TEST_CCFLAGS = -DUNIT_TEST=1 -isystem $(GTEST_DIR)/include
+check: $(TEST_TARGET)
+	@echo [EXEC] $(TEST_TARGET)
+	@chmod +x $(TEST_TARGET)
+	@exec $(TEST_TARGET)

+ 1 - 0
win32/resources.rc

@@ -0,0 +1 @@
+1 24 "Application.manifest"

+ 5 - 0
win32/win32.cpp

@@ -304,7 +304,12 @@ extern "C"
 BOOL UTIL_IsAbsolutePath(LPCSTR  lpszFileName)
 {
 	char szDrive[_MAX_DRIVE], szDir[_MAX_DIR], szFname[_MAX_FNAME], szExt[_MAX_EXT];
+#ifndef __MINGW32__
 	if (_splitpath_s(lpszFileName, szDrive, szDir, szFname, szExt) == 0)
+#else
+	_splitpath(lpszFileName, szDrive, szDir, szFname, szExt);
+	if ( errno !=EINVAL )
+#endif
 		return (strlen(szDrive) > 0 && (szDir[0] == '\\' || szDir[0] == '/'));
 	else
 		return FALSE;