Permalink
Cannot retrieve contributors at this time
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
711 lines (642 sloc)
20.5 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # | |
| # valid platforms in alphabetical order: | |
| # | |
| # PLATFORM = aitouchbook | |
| # PLATFORM = aros | |
| # PLATFORM = beos | |
| # PLATFORM = gphwiz | |
| # PLATFORM = haiku | |
| # PLATFORM = lin-32 | |
| # PLATFORM = lin-64 | |
| # PLATFORM = linux | |
| # PLATFORM = linux-nogl | |
| # PLATFORM = mint | |
| # PLATFORM = mint-cf | |
| # PLATFORM = morphos | |
| # PLATFORM = os4 | |
| # PLATFORM = osx | |
| # PLATFORM = pandora | |
| # PLATFORM = rpi | |
| # PLATFORM = win32 | |
| # PLATFORM = win32-gcc | |
| # PLATFORM = win64-gcc | |
| # important build parameters: | |
| # SDL_LIB - select SDL versions | |
| # SDL_LIB=sdl - use v.1.x - default | |
| # SDL_LIB=sdl2 - use v.2.x | |
| VERSION_MAJ = 1 | |
| VERSION_MIN = 2 | |
| VERSION_REV = 0 | |
| VERSION_FULL = $(VERSION_MAJ).$(VERSION_MIN).$(VERSION_REV) | |
| APP_INFO = | |
| APP_NAME = $(strip Oricutron $(APP_INFO)) | |
| APP_YEAR = 2019 | |
| COPYRIGHTS = (c)$(APP_YEAR) Peter Gordon (pete@gordon.plus) | |
| VERSION_COPYRIGHTS = "$(APP_NAME) $(VERSION_FULL) $(COPYRIGHTS)" | |
| #COPYRIGHTS = "$(APP_NAME) $(VERSION_FULL) ©$(APP_YEAR) Peter Gordon (pete@gordon.plus)" | |
| ####### DEFAULT SETTINGS HERE ####### | |
| SRC_DIR = . | |
| VPATH = $(SRC_DIR) $(SRC_DIR)/plugins/ch376 $(SRC_DIR)/plugins/twilighte_board | |
| ### extract git/svn revision | |
| GITREVISION = $(shell git rev-parse --short HEAD || svnversion -n $(SRC_DIR)) | |
| DEFINES = -DAPP_NAME_FULL='"$(APP_NAME) WIP Rev: $(GITREVISION)"' | |
| #DEFINES = -DAPP_NAME_FULL='"$(APP_NAME) $(VERSION_MAJ).$(VERSION_MIN)"' | |
| #DEFINES += -DAPP_WVER='$(VERSION_MAJ),$(VERSION_MIN),$(VERSION_REV),0' | |
| #DEFINES += -DAPP_COPYRIGHTS='"$(COPYRIGHTS)"' | |
| DEFINES += -DAPP_YEAR='"$(APP_YEAR)"' -DVERSION_COPYRIGHTS='$(VERSION_COPYRIGHTS)' | |
| ifneq ($(DEBUG),y) | |
| CFLAGS = -Wall -O3 | |
| else | |
| CFLAGS = -Wall -g -O0 | |
| endif | |
| CFLAGS += $(DEFINES) | |
| LFLAGS = | |
| ifneq ($(NO_GETADDRINFO),) | |
| CFLAGS += -DNO_GETADDRINFO=1 | |
| endif | |
| #CFLAGS += -DDEBUG_CPU_TRACE=1000 | |
| #CFLAGS += -DDEBUG_CPU_TRACE=200000 | |
| ifneq ($(DEBUG_VSYNC),) | |
| CFLAGS += -DDEBUG_VSYNC | |
| endif | |
| CC = gcc | |
| CXX = g++ | |
| AR = ar | |
| RANLIB = ranlib | |
| STRIP = strip | |
| DEBUGLIB = | |
| TARGET_NAME = oricutron | |
| TARGET = $(TARGET_NAME) | |
| FILEREQ_OBJ = filereq_sdl.o | |
| MSGBOX_OBJ = msgbox_sdl.o | |
| EXTRAOBJS = | |
| CUSTOMOBJS = | |
| PKGDIR = Oricutron_$(PLATFORM)_v$(VERSION_MAJ)$(VERSION_MIN) | |
| DOCFILES = ReadMe.txt oricutron.cfg ChangeLog.txt | |
| ####### PLATFORM DETECTION HERE ####### | |
| UNAME_S = $(shell uname -s) | |
| ifeq ($(UNAME_S),AROS) | |
| HOSTOS = aros | |
| PLATFORM ?= aros | |
| endif | |
| ifeq ($(UNAME_S),BeOS) | |
| HOSTOS = beos | |
| PLATFORM ?= beos | |
| endif | |
| ifeq ($(UNAME_S),Darwin) | |
| HOSTOS = osx | |
| PLATFORM ?= osx | |
| endif | |
| ifeq ($(UNAME_S),Haiku) | |
| HOSTOS = haiku | |
| PLATFORM ?= haiku | |
| endif | |
| ifeq ($(UNAME_S),Linux) | |
| HOSTOS = linux | |
| PLATFORM ?= linux | |
| endif | |
| ifeq ($(UNAME_S),MorphOS) | |
| HOSTOS = morphos | |
| PLATFORM ?= morphos | |
| endif | |
| ifeq ($(PLATFORM),) | |
| UNAME_O = $(shell uname -o) | |
| ifeq ($(UNAME_O),Msys) | |
| HOSTOS = win32 | |
| PLATFORM ?= win32 | |
| endif | |
| endif | |
| # default | |
| HOSTOS ?= os4 | |
| PLATFORM ?= os4 | |
| $(info Host OS : $(HOSTOS)) | |
| $(info Target platform : $(PLATFORM)) | |
| ####### PLATFORM SPECIFIC STUFF HERE ####### | |
| ### set SDL_LIB to 'sdl' or 'sdl2' for SDL2 (default is sdl) | |
| SDL_LIB ?= sdl | |
| $(info Using SDL lib : $(SDL_LIB)) | |
| $(info Using SDL prefix: $(SDL_PREFIX)) | |
| # Amiga OS4 | |
| ifeq ($(PLATFORM),os4) | |
| CFLAGS += -mcrt=newlib -gstabs -I/SDK/Local/common/include/ -I/SDK/Local/common/include/SDL/ -I/SDK/Local/newlib/include/ -I/SDK/Local/newlib/include/SDL/ -D__OPENGL_AVAILABLE__ -DNO_GETADDRINFO=1 | |
| LFLAGS += -lm `$(SDL_LIB)-config --libs` -lGL -mcrt=newlib -gstabs | |
| FILEREQ_OBJ = filereq_amiga.o | |
| MSGBOX_OBJ = msgbox_os4.o | |
| AMIGA_ICONS = os4icon | |
| endif | |
| # MorphOS | |
| ifeq ($(PLATFORM),morphos) | |
| CFLAGS += `$(SDL_LIB)-config --cflags` -D__OPENGL_AVAILABLE__ -DNO_GETADDRINFO=1 | |
| LFLAGS += `$(SDL_LIB)-config --libs` -s | |
| FILEREQ_OBJ = filereq_amiga.o | |
| MSGBOX_OBJ = msgbox_os2.o | |
| AMIGA_ICONS = pngicon | |
| EXTRAOBJS = oric_ch376_plugin.o ch376.o oric_twilighte_board_plugin.o | |
| endif | |
| # AROS | |
| ifeq ($(PLATFORM),aros) | |
| CFLAGS += `$(SDL_LIB)-config --cflags` -D__OPENGL_AVAILABLE__ | |
| LFLAGS += `$(SDL_LIB)-config --libs` -s | |
| FILEREQ_OBJ = filereq_amiga.o | |
| MSGBOX_OBJ = msgbox_os2.o | |
| AMIGA_ICONS = pngicon | |
| endif | |
| # Windows 32bit | |
| ifeq ($(PLATFORM),win32) | |
| ifneq ($(HOSTOS),win32) | |
| # in Debian: apt:mingw32 | |
| CROSS_COMPILE ?= i586-mingw32msvc- | |
| else | |
| ifeq ($(SDL_LIB),sdl) | |
| CFLAGS += -DSDL_MAJOR_VERSION=1 | |
| else | |
| CFLAGS += -DSDL_MAJOR_VERSION=2 | |
| endif | |
| endif | |
| CC := $(CROSS_COMPILE)$(CC) | |
| CXX := $(CROSS_COMPILE)$(CXX) | |
| AR := $(CROSS_COMPILE)$(AR) | |
| RANLIB := $(CROSS_COMPILE)$(RANLIB) | |
| WINDRES := $(CROSS_COMPILE)windres | |
| STRIP := $(CROSS_COMPILE)$(STRIP) | |
| ifneq ($(SDL_PREFIX),) | |
| CFLAGS += -I$(SDL_PREFIX)/include | |
| LFLAGS += -L$(SDL_PREFIX)/lib | |
| endif | |
| CFLAGS += -Dmain=SDL_main -D__SPECIFY_SDL_DIR__ -D__OPENGL_AVAILABLE__ -D__CBCOPY__ -D__CBPASTE__ -g | |
| LFLAGS += -g -lm -mwindows -lmingw32 -lSDLmain -lSDL -lopengl32 -lws2_32 -static-libgcc | |
| ifneq ($(PROFILING),) | |
| CFLAGS += -pg | |
| LFLAGS += -pg | |
| endif | |
| TARGET = oricutron.exe | |
| FILEREQ_OBJ = filereq_win32.o | |
| MSGBOX_OBJ = msgbox_win32.o | |
| CUSTOMOBJS = gui_win.o winicon.o | |
| endif | |
| # Windows 32bit GCC | |
| ifeq ($(PLATFORM),win32-gcc) | |
| ifneq ($(HOSTOS),win32) | |
| # in Debian: apt:mingw32 | |
| CROSS_PREFIX ?= i686-w64-mingw32 | |
| CROSS_COMPILE ?= $(CROSS_PREFIX)- | |
| ifeq ($(SDL_LIB),sdl) | |
| CFLAGS += -DSDL_MAJOR_VERSION=1 | |
| else | |
| CFLAGS += -DSDL_MAJOR_VERSION=2 | |
| endif | |
| endif | |
| CC := $(CROSS_COMPILE)$(CC) | |
| CXX := $(CROSS_COMPILE)$(CXX) | |
| AR := $(CROSS_COMPILE)$(AR) | |
| RANLIB := $(CROSS_COMPILE)$(RANLIB) | |
| WINDRES := $(CROSS_COMPILE)windres | |
| STRIP := $(CROSS_COMPILE)$(STRIP) | |
| ifneq ($(SDL_PREFIX),) | |
| ifneq (,$(SDL_CFLAGS)) | |
| CFLAGS += $(SDL_CFLAGS) | |
| else | |
| CFLAGS += -I$(SDL_PREFIX)/include | |
| endif | |
| ifneq (,$(SDL_LFLAGS)) | |
| LFLAGS += $(SDL_LFLAGS) | |
| else | |
| LFLAGS += -L$(SDL_PREFIX)/lib | |
| endif | |
| else | |
| CFLAGS += $(shell PKG_CONFIG_PATH=/usr/$(CROSS_PREFIX)/sys-root/mingw/lib/pkgconfig pkg-config $(SDL_LIB) --cflags) | |
| LFLAGS += $(shell PKG_CONFIG_PATH=/usr/$(CROSS_PREFIX)/sys-root/mingw/lib/pkgconfig pkg-config $(SDL_LIB) --libs) | |
| endif | |
| CFLAGS += -Dmain=SDL_main -D__SPECIFY_SDL_DIR__ -D__OPENGL_AVAILABLE__ -D__CBCOPY__ -D__CBPASTE__ -g | |
| LFLAGS += -g -static-libgcc -static-libstdc++ -mwindows -lopengl32 -lws2_32 | |
| ifneq ($(PROFILING),) | |
| CFLAGS += -pg | |
| LFLAGS += -pg | |
| endif | |
| TARGET = $(TARGET_NAME).exe | |
| TARGET_DEPS = /usr/$(CROSS_PREFIX)/sys-root/mingw/bin/SDL.dll | |
| FILEREQ_OBJ = filereq_win32.o | |
| MSGBOX_OBJ = msgbox_win32.o | |
| CUSTOMOBJS = gui_win.o winicon.o | |
| EXTRAOBJS = oric_ch376_plugin.o ch376.o oric_twilighte_board_plugin.o | |
| endif | |
| # Windows 64bit GCC | |
| ifeq ($(PLATFORM),win64-gcc) | |
| ifneq ($(HOSTOS),win32) | |
| # in Debian: apt:mingw32 | |
| CROSS_PREFIX ?= x86_64-w64-mingw32 | |
| CROSS_COMPILE ?= $(CROSS_PREFIX)- | |
| ifeq ($(SDL_LIB),sdl) | |
| CFLAGS += -DSDL_MAJOR_VERSION=1 | |
| else | |
| CFLAGS += -DSDL_MAJOR_VERSION=2 | |
| endif | |
| endif | |
| CC := $(CROSS_COMPILE)$(CC) | |
| CXX := $(CROSS_COMPILE)$(CXX) | |
| AR := $(CROSS_COMPILE)$(AR) | |
| RANLIB := $(CROSS_COMPILE)$(RANLIB) | |
| WINDRES := $(CROSS_COMPILE)windres | |
| STRIP := $(CROSS_COMPILE)$(STRIP) | |
| ifneq ($(SDL_PREFIX),) | |
| ifneq (,$(SDL_CFLAGS)) | |
| CFLAGS += $(SDL_CFLAGS) | |
| else | |
| CFLAGS += -I$(SDL_PREFIX)/include | |
| endif | |
| ifneq (,$(SDL_LFLAGS)) | |
| LFLAGS += $(SDL_LFLAGS) | |
| else | |
| LFLAGS += -L$(SDL_PREFIX)/lib | |
| endif | |
| else | |
| CFLAGS += $(shell PKG_CONFIG_PATH=/usr/$(CROSS_PREFIX)/sys-root/mingw/lib/pkgconfig pkg-config $(SDL_LIB) --cflags) | |
| LFLAGS += $(shell PKG_CONFIG_PATH=/usr/$(CROSS_PREFIX)/sys-root/mingw/lib/pkgconfig pkg-config $(SDL_LIB) --libs) | |
| endif | |
| CFLAGS += -Dmain=SDL_main -D__SPECIFY_SDL_DIR__ -D__OPENGL_AVAILABLE__ -D__CBCOPY__ -D__CBPASTE__ -g | |
| LFLAGS += -g -static-libgcc -static-libstdc++ -mwindows -lopengl32 -lws2_32 | |
| ifneq ($(PROFILING),) | |
| CFLAGS += -pg | |
| LFLAGS += -pg | |
| endif | |
| TARGET = $(TARGET_NAME).exe | |
| TARGET_DEPS = /usr/$(CROSS_PREFIX)/sys-root/mingw/bin/SDL.dll | |
| FILEREQ_OBJ = filereq_win32.o | |
| MSGBOX_OBJ = msgbox_win32.o | |
| CUSTOMOBJS = gui_win.o winicon.o | |
| EXTRAOBJS = oric_ch376_plugin.o ch376.o oric_twilighte_board_plugin.o | |
| endif | |
| # BeOS / Haiku | |
| ifeq ($(PLATFORM),beos) | |
| PLATFORMTYPE = beos | |
| endif | |
| ifeq ($(PLATFORM),haiku) | |
| PLATFORMTYPE = beos | |
| endif | |
| ifeq ($(PLATFORMTYPE),beos) | |
| #CFLAGS += -D__OPENGL_AVAILABLE__ | |
| CFLAGS += $(shell $(SDL_LIB)-config --cflags) | |
| LFLAGS += $(shell $(SDL_LIB)-config --libs) | |
| CFLAGS += -Wno-multichar | |
| CFLAGS += -g -D__CBCOPY__ -D__CBPASTE__ | |
| LFLAGS += -lbe -ltracker -lGL | |
| TARGET = oricutron | |
| INSTALLDIR = /boot/apps/Oricutron | |
| FILEREQ_OBJ = | |
| MSGBOX_OBJ = | |
| CUSTOMOBJS = gui_beos.o msgbox_beos.o filereq_beos.o | |
| EXTRAOBJS = plugins/ch376/oric_ch376_plugin.o plugins/twilighte_board/oric_twilighte_board_plugin.o | |
| BEOS_BERES := beres | |
| BEOS_RC := rc | |
| BEOS_XRES := xres | |
| BEOS_SETVER := setversion | |
| BEOS_MIMESET := mimeset | |
| RSRC_BEOS := oricutron.rsrc | |
| RESOURCES := $(RSRC_BEOS) | |
| endif | |
| # Mac OS X | |
| ifeq ($(PLATFORM),osx) | |
| ifneq (,$(CROSS_CFLAGS)) | |
| CFLAGS += -D__OPENGL_AVAILABLE__ -D__CBCOPY__ -D__CBPASTE__ $(CROSS_CFLAGS) | |
| else | |
| CFLAGS += -D__OPENGL_AVAILABLE__ -D__CBCOPY__ -D__CBPASTE__ $(shell $(SDL_LIB)-config --cflags) | |
| endif | |
| ifneq (,$(CROSS_LFLAGS)) | |
| LFLAGS += $(CROSS_LFLAGS) -s | |
| else | |
| LFLAGS += $(shell $(SDL_LIB)-config --libs) -s | |
| endif | |
| LFLAGS += -lm -Wl,-framework,OpenGL | |
| TARGET = $(TARGET_NAME) | |
| FILEREQ_OBJ = | |
| MSGBOX_OBJ = | |
| CUSTOMOBJS = gui_osx.o filereq_osx.o msgbox_osx.o | |
| EXTRAOBJS = oric_ch376_plugin.o ch376.o oric_twilighte_board_plugin.o | |
| endif | |
| # Special-case for Pandora Linux: | |
| ifeq ($(PLATFORM),pandora) | |
| TARGET = oricutron | |
| INSTALLDIR = /usr/local | |
| STRIP := $(CROSS_COMPILE)$(STRIP) | |
| CFLAGS += -g $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config $(SDL_LIB) --cflags) -D__CBCOPY__ -D__CBPASTE__ | |
| LFLAGS += -lm -L/usr/$(BASELIBDIR) $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config $(SDL_LIB) --libs) -lX11 | |
| CUSTOMOBJS = gui_x11.o | |
| FILEREQ_OBJ = filereq_sdl.o | |
| MSGBOX_OBJ = msgbox_sdl.o | |
| TARGET = oricutron | |
| INSTALLDIR = /usr/local | |
| endif | |
| # Pandora | |
| # Linux | |
| ifeq ($(PLATFORM),linux) | |
| ifeq (x86_64,$(shell uname -m)) | |
| BASELIBDIR := lib64 | |
| CFLAGS += -m64 | |
| LFLAGS += -m64 | |
| else | |
| BASELIBDIR := lib | |
| CFLAGS += -m32 | |
| LFLAGS += -m32 | |
| endif | |
| STRIP := $(CROSS_COMPILE)$(STRIP) | |
| ifeq ($(NOGTK),) | |
| CFLAGS += $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config gtk+-3.0 --cflags) | |
| LFLAGS += $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config gtk+-3.0 --libs) | |
| FILEREQ_OBJ = filereq_gtk.o | |
| MSGBOX_OBJ = msgbox_gtk.o | |
| endif | |
| CFLAGS += -g $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config $(SDL_LIB) --cflags) -D__OPENGL_AVAILABLE__ -DAUDIO_BUFLEN=1024 -D__CBCOPY__ -D__CBPASTE__ | |
| LFLAGS += -lm -L/usr/$(BASELIBDIR) $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config $(SDL_LIB) --libs) -lGL -lX11 | |
| CUSTOMOBJS = gui_x11.o | |
| EXTRAOBJS = oric_ch376_plugin.o ch376.o oric_twilighte_board_plugin.o | |
| TARGET = oricutron | |
| INSTALLDIR = /usr/local | |
| endif | |
| # Linux-cross 32 | |
| ifeq ($(PLATFORM),lin-32) | |
| BASELIBDIR := lib | |
| CFLAGS += -m32 | |
| LFLAGS += -m32 | |
| STRIP := $(CROSS_COMPILE)$(STRIP) | |
| ifeq ($(NOGTK),) | |
| CFLAGS += $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config gtk+-3.0 --cflags) | |
| LFLAGS += $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config gtk+-3.0 --libs) | |
| FILEREQ_OBJ = filereq_gtk.o | |
| MSGBOX_OBJ = msgbox_gtk.o | |
| endif | |
| CFLAGS += -g $(SDL_CFLAGS) -D__OPENGL_AVAILABLE__ -DAUDIO_BUFLEN=1024 -D__CBCOPY__ -D__CBPASTE__ | |
| LFLAGS += -lm -L/usr/$(BASELIBDIR) $(SDL_LFLAGS) -lGL -lX11 | |
| CUSTOMOBJS = gui_x11.o | |
| EXTRAOBJS = oric_ch376_plugin.o ch376.o oric_twilighte_board_plugin.o | |
| TARGET = $(TARGET_NAME) | |
| INSTALLDIR = /usr/local | |
| endif | |
| # Linux-cross 64 | |
| ifeq ($(PLATFORM),lin-64) | |
| BASELIBDIR := lib64 | |
| CFLAGS += -m64 | |
| LFLAGS += -m64 | |
| STRIP := $(CROSS_COMPILE)$(STRIP) | |
| ifeq ($(NOGTK),) | |
| CFLAGS += $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config gtk+-3.0 --cflags) | |
| LFLAGS += $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config gtk+-3.0 --libs) | |
| FILEREQ_OBJ = filereq_gtk.o | |
| MSGBOX_OBJ = msgbox_gtk.o | |
| endif | |
| CFLAGS += -g $(SDL_CFLAGS) -D__OPENGL_AVAILABLE__ -DAUDIO_BUFLEN=1024 -D__CBCOPY__ -D__CBPASTE__ | |
| LFLAGS += -lm -L/usr/$(BASELIBDIR) $(SDL_LFLAGS) -lGL -lX11 | |
| CUSTOMOBJS = gui_x11.o | |
| EXTRAOBJS = oric_ch376_plugin.o ch376.o oric_twilighte_board_plugin.o | |
| TARGET = $(TARGET_NAME) | |
| INSTALLDIR = /usr/local | |
| endif | |
| # Linux no-OpenGL | |
| ifeq ($(PLATFORM),linux-nogl) | |
| ifeq (x86_64,$(shell uname -m)) | |
| BASELIBDIR := lib64 | |
| CFLAGS += -m64 | |
| LFLAGS += -m64 | |
| else | |
| BASELIBDIR := lib | |
| CFLAGS += -m32 | |
| LFLAGS += -m32 | |
| endif | |
| STRIP := $(CROSS_COMPILE)$(STRIP) | |
| CFLAGS += -g $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config $(SDL_LIB) --cflags) $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config gtk+-3.0 --cflags) -D__CBCOPY__ -D__CBPASTE__ | |
| LFLAGS += -lm -L/usr/$(BASELIBDIR) $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config $(SDL_LIB) --libs) $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config gtk+-3.0 --libs) -lX11 | |
| CUSTOMOBJS = gui_x11.o | |
| EXTRAOBJS = oric_ch376_plugin.o ch376.o oric_twilighte_board_plugin.o | |
| FILEREQ_OBJ = filereq_gtk.o | |
| MSGBOX_OBJ = msgbox_gtk.o | |
| TARGET = oricutron | |
| INSTALLDIR = /usr/local | |
| endif | |
| # Linux - Raspberry Pi | |
| ifeq ($(PLATFORM),rpi) | |
| BASELIBDIR := lib | |
| STRIP := $(CROSS_COMPILE)$(STRIP) | |
| CFLAGS += -g $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config $(SDL_LIB) --cflags) | |
| LFLAGS += -lm -L/usr/$(BASELIBDIR) $(shell PKG_CONFIG_PATH=/usr/$(BASELIBDIR)/pkgconfig pkg-config $(SDL_LIB) --libs) #-lX11 | |
| CUSTOMOBJS = gui_x11.o | |
| FILEREQ_OBJ = filereq_sdl.o | |
| MSGBOX_OBJ = msgbox_sdl.o | |
| TARGET = oricutron | |
| INSTALLDIR = /usr/local | |
| endif | |
| # Linux-gph-wiz | |
| ifeq ($(PLATFORM),gphwiz) | |
| WIZ_HOME = /opt/openwiz/toolchain/arm-openwiz-linux-gnu | |
| WIZ_PREFIX = $(WIZ_HOME)/bin/arm-openwiz-linux-gnu | |
| CC = $(WIZ_PREFIX)-gcc | |
| CXX = $(WIZ_PREFIX)-g++ | |
| AR = $(WIZ_PREFIX)-ar | |
| RANLIB = $(WIZ_PREFIX)-ranlib | |
| CFLAGS += `$(WIZ_HOME)/bin/$(SDL_LIB)-config --cflags` | |
| LFLAGS += -lm `$(WIZ_HOME)/bin/$(SDL_LIB)-config --libs` | |
| TARGET = oricutron.gpe | |
| endif | |
| # AI touchbook OS | |
| ifeq ($(PLATFORM),aitouchbook) | |
| AITB_HOME = /usr/bin/ | |
| AITB_PREFIX = $(AITB_HOME)arm-angstrom-linux-gnueabi | |
| CC = $(AITB_PREFIX)-gcc | |
| CXX = $(AITB_PREFIX)-g++ | |
| AR = $(AITB_PREFIX)-ar | |
| CFLAGS += `$(AITB_HOME)/$(SDL_LIB)-config --cflags` | |
| LFLAGS += -lm `$(AITB_HOME)/$(SDL_LIB)-config --libs` | |
| RANLIB = $(AITB_PREFIX)-ranlib | |
| TARGET = oricutron_AITB | |
| endif | |
| # Atari MINT | |
| ifeq ($(PLATFORM),mint-cf) | |
| SDK_HOME ?=/opt/netsurf/m5475-atari-mint | |
| SDK_PREFIX := $(SDK_HOME)/cross/bin/m5475-atari-mint | |
| TARGET = oricutcf.app | |
| endif | |
| ifeq ($(PLATFORM),mint) | |
| SDK_HOME ?=/opt/netsurf/m68k-atari-mint | |
| SDK_PREFIX ?= $(SDK_HOME)/cross/bin/m68k-atari-mint | |
| TARGET = oricutrn.app | |
| endif | |
| ifeq ($(PLATFORM:%-cf=%),mint) | |
| CC = $(SDK_PREFIX)-gcc | |
| CXX = $(SDK_PREFIX)-gcc | |
| AR = $(SDK_PREFIX)-ar | |
| RANLIB = $(SDK_PREFIX)-ranlib | |
| CFLAGS += `$(SDK_HOME)/env/bin/$(SDL_LIB)-config --cflags` | |
| LFLAGS += -Wl,--stack,256k -Wl,--msuper-memory -lm `$(SDK_HOME)/env/bin/$(SDL_LIB)-config --libs` | |
| EXTRAOBJS = oric_ch376_plugin.o ch376.o oric_twilighte_board_plugin.o | |
| endif | |
| ####### SHOULDN'T HAVE TO CHANGE THIS STUFF ####### | |
| OBJECTS = \ | |
| system_sdl.o \ | |
| main.o \ | |
| 6502.o \ | |
| machine.o \ | |
| ula.o \ | |
| gui.o \ | |
| font.o \ | |
| monitor.o \ | |
| via.o \ | |
| tape.o \ | |
| 8912.o \ | |
| 6551.o \ | |
| 6551_loopback.o \ | |
| 6551_modem.o \ | |
| 6551_com.o \ | |
| disk.o \ | |
| disk_pravetz.o \ | |
| avi.o \ | |
| render_sw.o \ | |
| render_sw8.o \ | |
| render_gl.o \ | |
| render_null.o \ | |
| joystick.o \ | |
| snapshot.o \ | |
| keyboard.o \ | |
| $(FILEREQ_OBJ) \ | |
| $(MSGBOX_OBJ) \ | |
| $(EXTRAOBJS) | |
| LINKOBJECTS := $(subst plugins/ch376/,,$(OBJECTS) $(CUSTOMOBJS)) | |
| all: $(TARGET) | |
| run: $(TARGET) | |
| $(TARGET) | |
| install: install-$(PLATFORM) $(TARGET) | |
| package: package-$(PLATFORM) $(TARGET) | |
| $(TARGET): $(LINKOBJECTS) $(RESOURCES) | |
| $(CXX) -o $(TARGET) $(LINKOBJECTS) $(LFLAGS) | |
| ifeq ($(PLATFORMTYPE),beos) | |
| $(BEOS_XRES) -o $(TARGET) $(RSRC_BEOS) | |
| $(BEOS_SETVER) $(TARGET) \ | |
| -app $(VERSION_MAJ) $(VERSION_MIN) 0 d 0 \ | |
| -short "$(APP_NAME) $(VERSION_FULL)" \ | |
| -long $(VERSION_COPYRIGHTS) | |
| $(BEOS_MIMESET) $(TARGET) | |
| endif | |
| -include $(OBJECTS:.o=.d) | |
| # Rules based build for standard *.c to *.o compilation | |
| $(OBJECTS): %.o: %.c | |
| $(CC) -c $(CFLAGS) $< -o $(notdir $@) | |
| @$(CC) -MM $(CFLAGS) $< > $(notdir $*).d | |
| %.o: %.c | |
| $(CC) -c $(CFLAGS) $< -o $(notdir $@) | |
| @$(CC) -MM $(CFLAGS) $< > $(notdir $*).d | |
| # Overide the default C rule for C++ | |
| %.o: %.cpp | |
| $(CXX) -c $(CFLAGS) $< -o $(notdir $@) | |
| @$(CXX) -MM $(CFLAGS) $< > $(notdir $*).d | |
| # Overide the default C rule for ObjC | |
| %.o: %.m | |
| $(CC) -c $(CFLAGS) $< -o $(notdir $@) | |
| @$(CC) -MM $(CFLAGS) $< > $(notdir $*).d | |
| winicon.o: $(SRC_DIR)/winicon.ico $(SRC_DIR)/oricutron.rc | |
| $(WINDRES) $(DEFINES) -i $(SRC_DIR)/oricutron.rc -o winicon.o | |
| %.guide: ReadMe.txt | |
| # AROS needs path | |
| -rx ReadMe2Guide <$? >$(APP_NAME).guide $(APP_NAME).guide $(VERSION_FULL) || SYS:Rexxc/rx ReadMe2Guide <$? >$(APP_NAME).guide $(APP_NAME).guide $(VERSION_FULL) | |
| -GuideCheck $@ | |
| $(RSRC_BEOS): oricutron.rdef | |
| $(BEOS_RC) -o $@ $< | |
| clean: | |
| rm -f $(TARGET) *.bak *.o *.d $(RESOURCES) printer_out.txt debug_log.txt | |
| rm -rf "$(PKGDIR)" | |
| release: $(TARGET) | |
| $(STRIP) $(TARGET) | |
| install-beos install-haiku: | |
| mkdir -p $(INSTALLDIR) | |
| copyattr -d $(TARGET) $(INSTALLDIR) | |
| # TODO: use resources | |
| mkdir -p $(INSTALLDIR)/images | |
| copyattr -d images/* $(INSTALLDIR)/images | |
| install-linux: | |
| install -m 755 $(TARGET) $(INSTALLDIR)/bin | |
| %.info: %_$(AMIGA_ICONS).info | |
| copy CLONE $< $@ | |
| package-morphos package-aros package-os4: Oricutron.guide $(patsubst %_$(AMIGA_ICONS).info,%.info,$(wildcard *_$(AMIGA_ICONS).info)) | |
| -@delete ram:Oricutron all >NIL: | |
| -@delete ram:$(PKGDIR).lha >NIL: | |
| makedir ram:Oricutron ram:Oricutron/disks ram:Oricutron/tapes ram:Oricutron/teledisks ram:Oricutron/pravdisks ram:Oricutron/roms ram:Oricutron/snapshots ram:Oricutron/images | |
| copy CLONE ENVARC:sys/def_drawer.info ram:Oricutron.info | |
| copy CLONE $(patsubst %_$(AMIGA_ICONS).info,%.info,$(wildcard *_$(AMIGA_ICONS).info)) ram:Oricutron | |
| copy CLONE images/#?.bmp ram:Oricutron/images/ | |
| copy CLONE "disks/#?.(dsk|txt)" ram:Oricutron/disks/ | |
| copy CLONE "tapes/#?.(tap|ort|txt)" ram:Oricutron/tapes/ | |
| copy CLONE "roms/#?.(rom|sym|pch)" ram:Oricutron/roms/ | |
| copy CLONE $(DOCFILES) Oricutron.guide ram:Oricutron | |
| copy CLONE $(TARGET) ram:Oricutron | |
| lha a -r -e ram:$(PKGDIR).lha ram:Oricutron ram:Oricutron.info | |
| delete $(patsubst %_$(AMIGA_ICONS).info,%.info,$(wildcard *_$(AMIGA_ICONS).info)) | |
| -@delete ram:Oricutron ram:Oricutron.info all >NIL: | |
| package-beos package-haiku: | |
| mkdir -p $(PKGDIR)/images | |
| copyattr -d $(TARGET) $(PKGDIR) | |
| copyattr -d images/* $(PKGDIR)/images | |
| install -m 644 $(DOCFILES) $(PKGDIR) | |
| zip -ry9 $(PKGDIR).zip $(PKGDIR)/ | |
| package-osx: | |
| mkdir -p $(PKGDIR)/Oricutron.app/Contents/MacOS | |
| mkdir -p $(PKGDIR)/Oricutron.app/Contents/Resources/images | |
| mkdir -p $(PKGDIR)/Oricutron.app/Contents/Resources/roms | |
| install -m 755 $(TARGET) $(PKGDIR)/Oricutron.app/Contents/MacOS/Oricutron | |
| echo 'APPL????' > $(PKGDIR)/Oricutron.app/Contents/PkgInfo | |
| sed "s/@@VERSION@@/$(VERSION_MAJ).$(VERSION_MIN)/g" Info.plist > $(PKGDIR)/Oricutron.app/Contents/Info.plist | |
| install -m 644 XCode/Oricutron/Oricutron/winicon.icns $(PKGDIR)/Oricutron.app/Contents/Resources | |
| install -m 644 images/* $(PKGDIR)/Oricutron.app/Contents/Resources/images | |
| # XXX: SDL now opens files in bundles first, but not old versions | |
| ln -s Oricutron.app/Contents/Resources/images $(PKGDIR)/images | |
| install -m 644 roms/* $(PKGDIR)/Oricutron.app/Contents/Resources/roms | |
| ln -s Oricutron.app/Contents/Resources/roms $(PKGDIR)/roms | |
| install -m 644 $(DOCFILES) $(PKGDIR) | |
| zip -ry9 $(PKGDIR).zip $(PKGDIR)/ | |
| package-win32: | |
| mkdir -p $(PKGDIR)/images | |
| mkdir -p $(PKGDIR)/disks | |
| mkdir -p $(PKGDIR)/teledisks | |
| mkdir -p $(PKGDIR)/pravdisks | |
| mkdir -p $(PKGDIR)/tapes | |
| mkdir -p $(PKGDIR)/roms | |
| install -m 755 $(TARGET) $(PKGDIR) | |
| install -m 644 images/* $(PKGDIR)/images | |
| #install -m 644 disks/* $(PKGDIR)/disks | |
| #install -m 644 tapes/* $(PKGDIR)/tapes | |
| install -m 644 roms/* $(PKGDIR)/roms | |
| install -m 644 $(DOCFILES) $(PKGDIR) | |
| # unix2dos is not always installed | |
| sed -i "s/$$/\r/g" $(PKGDIR)/ReadMe.txt | |
| zip -ry9 $(PKGDIR).zip $(PKGDIR)/ | |
| package-win-gcc: clean release | |
| mkdir -p $(PKGDIR)/images | |
| mkdir -p $(PKGDIR)/disks | |
| mkdir -p $(PKGDIR)/teledisks | |
| mkdir -p $(PKGDIR)/pravdisks | |
| mkdir -p $(PKGDIR)/tapes | |
| mkdir -p $(PKGDIR)/roms | |
| install -m 755 $(TARGET) $(TARGET_DEPS) $(PKGDIR)/ | |
| install -m 644 $(SRC_DIR)/images/* $(PKGDIR)/images/ | |
| #install -m 644 $(SRC_DIR)/disks/* $(PKGDIR)/disks/ | |
| #install -m 644 $(SRC_DIR)/tapes/* $(PKGDIR)/tapes/ | |
| install -m 644 $(SRC_DIR)/roms/* $(PKGDIR)/roms/ | |
| install -m 644 $(addprefix $(SRC_DIR)/,$(DOCFILES)) $(PKGDIR)/ | |
| # unix2dos is not always installed | |
| sed -i "s/$$/\r/g" $(PKGDIR)/ReadMe.txt | |
| zip -ry9 $(PKGDIR).zip $(PKGDIR)/ | |
| package-mint package-mint-cf: | |
| mkdir -p $(PKGDIR)/images | |
| mkdir -p $(PKGDIR)/disks | |
| mkdir -p $(PKGDIR)/teledisks | |
| mkdir -p $(PKGDIR)/pravdisks | |
| mkdir -p $(PKGDIR)/tapes | |
| mkdir -p $(PKGDIR)/roms | |
| install -m 755 $(TARGET) $(PKGDIR) | |
| install -m 644 images/* $(PKGDIR)/images | |
| #install -m 644 disks/* $(PKGDIR)/disks | |
| #install -m 644 tapes/* $(PKGDIR)/tapes | |
| install -m 644 roms/* $(PKGDIR)/roms | |
| install -m 644 $(DOCFILES) $(PKGDIR) | |
| # unix2dos is not always installed | |
| sed -i "s/$$/\r/g" $(PKGDIR)/ReadMe.txt | |
| zip -ry9 $(PKGDIR).zip $(PKGDIR)/ | |
| .PHONY: mrproper | |
| PLATFORMS := aitouchbook aros beos gphwiz haiku lin-32 lin-64 linux linux-nogl mint mint-cf morphos os4 osx pandora rpi win32 win32-gcc win64-gcc | |
| mrproper: | |
| @for plat in $(PLATFORMS); do $(MAKE) -f $(SRC_DIR)/Makefile clean PLATFORM=$${plat}; done |