Add FreeBSD support (#363)
* make clean: 'rm -rf ...' instead of 'rm ... -r -f' Only GNU rm supports flags after paths * Scale2x: do not include malloc.h on FreeBSD * Allow using system libevdev, use sdl2-config to find sdl2 + extract the C++17 fs library name into a variable to allow overriding (it's -lc++experimental on systems with LLVM's libc++ as the C++ lib)
This commit is contained in:
parent
f1f15ca1f8
commit
c9e569fc26
3 changed files with 26 additions and 18 deletions
|
@ -1,6 +1,6 @@
|
||||||
#include "../Core/MessageManager.h"
|
#include "../Core/MessageManager.h"
|
||||||
#include "LinuxGameController.h"
|
#include "LinuxGameController.h"
|
||||||
#include "libevdev/libevdev.h"
|
#include <libevdev/libevdev.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@ -223,4 +223,4 @@ static int print_event(struct input_event *ev)
|
||||||
ev->value);
|
ev->value);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -39,7 +39,7 @@
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#ifndef __MACH__
|
#if !(defined(__MACH__) || defined(__FreeBSD__))
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
38
makefile
38
makefile
|
@ -50,10 +50,18 @@ RELEASEFOLDER=bin/$(MESENPLATFORM)/Release
|
||||||
COREOBJ=$(patsubst Core/%.cpp,Core/$(OBJFOLDER)/%.o,$(wildcard Core/*.cpp))
|
COREOBJ=$(patsubst Core/%.cpp,Core/$(OBJFOLDER)/%.o,$(wildcard Core/*.cpp))
|
||||||
UTILOBJ=$(patsubst Utilities/%.cpp,Utilities/$(OBJFOLDER)/%.o,$(wildcard Utilities/*.cpp)) $(patsubst Utilities/HQX/%.cpp,Utilities/$(OBJFOLDER)/%.o,$(wildcard Utilities/HQX/*.cpp)) $(patsubst Utilities/xBRZ/%.cpp,Utilities/$(OBJFOLDER)/%.o,$(wildcard Utilities/xBRZ/*.cpp)) $(patsubst Utilities/KreedSaiEagle/%.cpp,Utilities/$(OBJFOLDER)/%.o,$(wildcard Utilities/KreedSaiEagle/*.cpp)) $(patsubst Utilities/Scale2x/%.cpp,Utilities/$(OBJFOLDER)/%.o,$(wildcard Utilities/Scale2x/*.cpp))
|
UTILOBJ=$(patsubst Utilities/%.cpp,Utilities/$(OBJFOLDER)/%.o,$(wildcard Utilities/*.cpp)) $(patsubst Utilities/HQX/%.cpp,Utilities/$(OBJFOLDER)/%.o,$(wildcard Utilities/HQX/*.cpp)) $(patsubst Utilities/xBRZ/%.cpp,Utilities/$(OBJFOLDER)/%.o,$(wildcard Utilities/xBRZ/*.cpp)) $(patsubst Utilities/KreedSaiEagle/%.cpp,Utilities/$(OBJFOLDER)/%.o,$(wildcard Utilities/KreedSaiEagle/*.cpp)) $(patsubst Utilities/Scale2x/%.cpp,Utilities/$(OBJFOLDER)/%.o,$(wildcard Utilities/Scale2x/*.cpp))
|
||||||
LINUXOBJ=$(patsubst Linux/%.cpp,Linux/$(OBJFOLDER)/%.o,$(wildcard Linux/*.cpp))
|
LINUXOBJ=$(patsubst Linux/%.cpp,Linux/$(OBJFOLDER)/%.o,$(wildcard Linux/*.cpp))
|
||||||
LIBEVDEVOBJ=$(patsubst Linux/libevdev/%.c,Linux/$(OBJFOLDER)/%.o,$(wildcard Linux/libevdev/*.c))
|
|
||||||
SEVENZIPOBJ=$(patsubst SevenZip/%.c,SevenZip/$(OBJFOLDER)/%.o,$(wildcard SevenZip/*.c))
|
SEVENZIPOBJ=$(patsubst SevenZip/%.c,SevenZip/$(OBJFOLDER)/%.o,$(wildcard SevenZip/*.c))
|
||||||
LUAOBJ=$(patsubst Lua/%.c,Lua/$(OBJFOLDER)/%.o,$(wildcard Lua/*.c))
|
LUAOBJ=$(patsubst Lua/%.c,Lua/$(OBJFOLDER)/%.o,$(wildcard Lua/*.c))
|
||||||
|
ifeq ($(SYSTEM_LIBEVDEV), true)
|
||||||
|
LIBEVDEVLIB=$(shell pkg-config --libs libevdev)
|
||||||
|
LIBEVDEVINC=$(shell pkg-config --cflags libevdev)
|
||||||
|
else
|
||||||
|
LIBEVDEVOBJ=$(patsubst Linux/libevdev/%.c,Linux/$(OBJFOLDER)/%.o,$(wildcard Linux/libevdev/*.c))
|
||||||
|
LIBEVDEVINC=-I../
|
||||||
|
endif
|
||||||
|
SDL2LIB=$(shell sdl2-config --libs)
|
||||||
|
SDL2INC=$(shell sdl2-config --cflags)
|
||||||
|
FSLIB=-lstdc++fs
|
||||||
|
|
||||||
all: ui
|
all: ui
|
||||||
|
|
||||||
|
@ -80,7 +88,7 @@ rungametests:
|
||||||
|
|
||||||
testhelper: InteropDLL/$(OBJFOLDER)/$(SHAREDLIB)
|
testhelper: InteropDLL/$(OBJFOLDER)/$(SHAREDLIB)
|
||||||
mkdir -p TestHelper/$(OBJFOLDER)
|
mkdir -p TestHelper/$(OBJFOLDER)
|
||||||
$(CPPC) $(GCCOPTIONS) -Wl,-z,defs -o testhelper TestHelper/*.cpp InteropDLL/ConsoleWrapper.cpp $(SEVENZIPOBJ) $(LUAOBJ) $(LINUXOBJ) $(LIBEVDEVOBJ) $(UTILOBJ) $(COREOBJ) -pthread -lSDL2 -lstdc++fs
|
$(CPPC) $(GCCOPTIONS) -Wl,-z,defs -o testhelper TestHelper/*.cpp InteropDLL/ConsoleWrapper.cpp $(SEVENZIPOBJ) $(LUAOBJ) $(LINUXOBJ) $(LIBEVDEVOBJ) $(UTILOBJ) $(COREOBJ) -pthread $(FSLIB) $(SDL2LIB) $(LIBEVDEVLIB)
|
||||||
mv testhelper TestHelper/$(OBJFOLDER)
|
mv testhelper TestHelper/$(OBJFOLDER)
|
||||||
|
|
||||||
SevenZip/$(OBJFOLDER)/%.o: SevenZip/%.c
|
SevenZip/$(OBJFOLDER)/%.o: SevenZip/%.c
|
||||||
|
@ -100,19 +108,19 @@ Utilities/$(OBJFOLDER)/%.o: Utilities/Scale2x/%.cpp
|
||||||
Core/$(OBJFOLDER)/%.o: Core/%.cpp
|
Core/$(OBJFOLDER)/%.o: Core/%.cpp
|
||||||
mkdir -p Core/$(OBJFOLDER) && cd Core/$(OBJFOLDER) && $(CPPC) $(GCCOPTIONS) -c $(patsubst Core/%, ../%, $<)
|
mkdir -p Core/$(OBJFOLDER) && cd Core/$(OBJFOLDER) && $(CPPC) $(GCCOPTIONS) -c $(patsubst Core/%, ../%, $<)
|
||||||
Linux/$(OBJFOLDER)/%.o: Linux/%.cpp
|
Linux/$(OBJFOLDER)/%.o: Linux/%.cpp
|
||||||
mkdir -p Linux/$(OBJFOLDER) && cd Linux/$(OBJFOLDER) && $(CPPC) $(GCCOPTIONS) -c $(patsubst Linux/%, ../%, $<)
|
mkdir -p Linux/$(OBJFOLDER) && cd Linux/$(OBJFOLDER) && $(CPPC) $(GCCOPTIONS) -c $(patsubst Linux/%, ../%, $<) $(SDL2INC) $(LIBEVDEVINC)
|
||||||
Linux/$(OBJFOLDER)/%.o: Linux/libevdev/%.c
|
Linux/$(OBJFOLDER)/%.o: Linux/libevdev/%.c
|
||||||
mkdir -p Linux/$(OBJFOLDER) && cd Linux/$(OBJFOLDER) && $(CC) $(CCOPTIONS) -c $(patsubst Linux/%, ../%, $<)
|
mkdir -p Linux/$(OBJFOLDER) && cd Linux/$(OBJFOLDER) && $(CC) $(CCOPTIONS) -c $(patsubst Linux/%, ../%, $<)
|
||||||
|
|
||||||
InteropDLL/$(OBJFOLDER)/$(SHAREDLIB): $(SEVENZIPOBJ) $(LUAOBJ) $(UTILOBJ) $(COREOBJ) $(LIBEVDEVOBJ) $(LINUXOBJ) InteropDLL/ConsoleWrapper.cpp InteropDLL/DebugWrapper.cpp
|
InteropDLL/$(OBJFOLDER)/$(SHAREDLIB): $(SEVENZIPOBJ) $(LUAOBJ) $(UTILOBJ) $(COREOBJ) $(LIBEVDEVOBJ) $(LINUXOBJ) InteropDLL/ConsoleWrapper.cpp InteropDLL/DebugWrapper.cpp
|
||||||
mkdir -p InteropDLL/$(OBJFOLDER)
|
mkdir -p InteropDLL/$(OBJFOLDER)
|
||||||
$(CPPC) $(GCCOPTIONS) -Wl,-z,defs -shared -o $(SHAREDLIB) InteropDLL/*.cpp $(SEVENZIPOBJ) $(LUAOBJ) $(LINUXOBJ) $(LIBEVDEVOBJ) $(UTILOBJ) $(COREOBJ) -pthread -lSDL2 -lstdc++fs
|
$(CPPC) $(GCCOPTIONS) -Wl,-z,defs -shared -o $(SHAREDLIB) InteropDLL/*.cpp $(SEVENZIPOBJ) $(LUAOBJ) $(LINUXOBJ) $(LIBEVDEVOBJ) $(UTILOBJ) $(COREOBJ) $(SDL2INC) -pthread $(FSLIB) $(SDL2LIB) $(LIBEVDEVLIB)
|
||||||
mv $(SHAREDLIB) InteropDLL/$(OBJFOLDER)
|
mv $(SHAREDLIB) InteropDLL/$(OBJFOLDER)
|
||||||
|
|
||||||
|
|
||||||
Libretro/$(OBJFOLDER)/$(LIBRETROLIB): $(SEVENZIPOBJ) $(UTILOBJ) $(COREOBJ) $(LUAOBJ) Libretro/libretro.cpp
|
Libretro/$(OBJFOLDER)/$(LIBRETROLIB): $(SEVENZIPOBJ) $(UTILOBJ) $(COREOBJ) $(LUAOBJ) Libretro/libretro.cpp
|
||||||
mkdir -p Libretro/$(OBJFOLDER)
|
mkdir -p Libretro/$(OBJFOLDER)
|
||||||
$(CPPC) $(GCCOPTIONS) -Wl,-z,defs -shared -o $(LIBRETROLIB) Libretro/*.cpp $(SEVENZIPOBJ) $(UTILOBJ) $(COREOBJ) $(LUAOBJ) -pthread
|
$(CPPC) $(GCCOPTIONS) -Wl,-z,defs -shared -o $(LIBRETROLIB) Libretro/*.cpp $(SEVENZIPOBJ) $(UTILOBJ) $(COREOBJ) $(LUAOBJ) -pthread $(FSLIB)
|
||||||
mv $(LIBRETROLIB) Libretro/$(OBJFOLDER)
|
mv $(LIBRETROLIB) Libretro/$(OBJFOLDER)
|
||||||
|
|
||||||
debug:
|
debug:
|
||||||
|
@ -122,12 +130,12 @@ run:
|
||||||
mono $(RELEASEFOLDER)/Mesen.exe
|
mono $(RELEASEFOLDER)/Mesen.exe
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm Lua/$(OBJFOLDER) -r -f
|
rm -rf Lua/$(OBJFOLDER)
|
||||||
rm SevenZip/$(OBJFOLDER) -r -f
|
rm -rf SevenZip/$(OBJFOLDER)
|
||||||
rm Utilities/$(OBJFOLDER) -r -f
|
rm -rf Utilities/$(OBJFOLDER)
|
||||||
rm Core/$(OBJFOLDER) -r -f
|
rm -rf Core/$(OBJFOLDER)
|
||||||
rm Linux/$(OBJFOLDER) -r -f
|
rm -rf Linux/$(OBJFOLDER)
|
||||||
rm InteropDLL/$(OBJFOLDER) -r -f
|
rm -rf InteropDLL/$(OBJFOLDER)
|
||||||
rm Libretro/$(OBJFOLDER) -r -f
|
rm -rf Libretro/$(OBJFOLDER)
|
||||||
rm TestHelper/$(OBJFOLDER) -r -f
|
rm -rf TestHelper/$(OBJFOLDER)
|
||||||
rm $(RELEASEFOLDER) -r -f
|
rm -rf $(RELEASEFOLDER)
|
||||||
|
|
Loading…
Add table
Reference in a new issue