--- a/Makefile +++ b/Makefile @@ -1,34 +1,26 @@ -CC ?= cc -CXX ?= c++ -CXXFLAGS ?= -O3 -CPPFLAGS += -DNST_PRAGMA_ONCE -CFLAGS = $(shell sdl2-config --cflags) - -INCLUDES = -Isource +nestopia_CPPFLAGS = -DNST_PRAGMA_ONCE -Isource $(shell sdl2-config --cflags) WARNINGS = -Wno-write-strings -LDFLAGS = -Wl,--as-needed -LIBS = -lstdc++ -lm -lz -LIBS += $(shell sdl2-config --libs) +nestopia_LIBS = -lm -lz $(shell sdl2-config --libs) UNAME := $(shell uname) BIN = nestopia -PREFIX ?= /usr/local +PREFIX ?= /usr BINDIR ?= $(PREFIX)/bin DATADIR ?= $(PREFIX)/share/nestopia ifneq ($(findstring MINGW,$(UNAME)),) - DEFINES = -D_MINGW - LDFLAGS += -mconsole - LIBS += -lepoxy -lopengl32 + nestopia_CPPFLAGS += -D_MINGW + nestopia_LIBS += -mconsole + nestopia_LIBS += -lepoxy -lopengl32 else ifneq ($(findstring Darwin,$(UNAME)),) - DEFINES = -D_APPLE - DEFINES += -DDATADIR=\"$(DATADIR)\" - INCLUDES += -I/usr/local/include -I/usr/local/opt/libarchive/include - LDFLAGS = -Wl -L/usr/local/opt/libarchive/lib - LIBS += -larchive -lepoxy -lao + nestopia_CPPFLAGS += -D_APPLE + nestopia_CPPFLAGS += -DDATADIR=\"$(DATADIR)\" + nestopia_CPPFLAGS += -I/usr/local/include -I/usr/local/opt/libarchive/include + nestopia_LIBS += -Wl -L/usr/local/opt/libarchive/lib + nestopia_LIBS += -larchive -lepoxy -lao # GTK Stuff - Comment this section to disable GTK+ #CFLAGS += $(shell pkg-config --cflags gtk+-3.0) #LIBS += $(shell pkg-config --libs gtk+-3.0) @@ -43,12 +35,12 @@ #WARNINGS += -Wno-deprecated-declarations # end GTK else - DEFINES = -DDATADIR=\"$(DATADIR)\" - LIBS += -larchive -lepoxy -lGL -lGLU -lao + nestopia_CPPFLAGS += -DDATADIR=\"$(DATADIR)\" + nestopia_LIBS += -larchive -lepoxy -lGL -lGLU -lao # GTK Stuff - Comment this section to disable GTK+ - CFLAGS += $(shell pkg-config --cflags gtk+-3.0) - LIBS += $(shell pkg-config --libs gtk+-3.0) - DEFINES += -D_GTK + nestopia_CPPFLAGS += $(shell pkg-config --cflags gtk+-3.0) + nestopia_LIBS += $(shell pkg-config --libs gtk+-3.0) + nestopia_CPPFLAGS += -D_GTK IOBJS += objs/unix/gtkui/gtkui.o IOBJS += objs/unix/gtkui/gtkui_archive.o IOBJS += objs/unix/gtkui/gtkui_callbacks.o @@ -374,11 +366,11 @@ # Core rules objs/core/%.o: source/core/%.cpp - $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ + $(CXX) $(nestopia_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(WARNINGS) -c $< -o $@ # Interface rules objs/unix/%.o: source/unix/%.cpp - $(CXX) $(CXXFLAGS) $(INCLUDES) $(WARNINGS) $(DEFINES) $(CFLAGS) -c $< -o $@ + $(CXX) $(nestopia_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(WARNINGS) -c $< -o $@ all: maketree $(BIN) @@ -392,19 +384,28 @@ @mkdir -p $@ $(BIN): $(OBJS) $(IOBJS) - $(CC) $(LDFLAGS) $^ $(LIBS) -o $(BIN) + $(CXX) $(LDFLAGS) $(CXXFLAGS) $^ $(nestopia_LIBS) $(LIBS) -o $(BIN) install: - mkdir -p $(BINDIR) - mkdir -p $(DATADIR)/icons - mkdir -p $(PREFIX)/share/pixmaps - install -m 0755 $(BIN) $(BINDIR) - install -m 0644 source/unix/icons/nestopia.desktop $(DATADIR) - install -m 0644 NstDatabase.xml $(DATADIR) - install -m 0644 source/unix/icons/*.png $(DATADIR)/icons - install -m 0644 source/unix/icons/*.svg $(DATADIR)/icons - install -m 0644 source/unix/icons/nestopia.svg $(PREFIX)/share/pixmaps - xdg-desktop-menu install --novendor $(DATADIR)/nestopia.desktop + mkdir -p $(DESTDIR)$(BINDIR) + mkdir -p $(DESTDIR)$(DATADIR) + mkdir -p $(DESTDIR)$(PREFIX)/share/applications/ + mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/32x32/apps + mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps + mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/64x64/apps + mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/96x96/apps + mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps + mkdir -p $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps + mkdir -p $(DESTDIR)$(PREFIX)/share/pixmaps + install -m 0755 $(BIN) $(DESTDIR)$(BINDIR) + install -m 0644 NstDatabase.xml $(DESTDIR)$(DATADIR) + install -m 0644 source/unix/icons/nestopia.desktop $(DESTDIR)$(PREFIX)/share/applications/ + install -m 0644 source/unix/icons/nestopia32.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/32x32/apps/nestopia.png + install -m 0644 source/unix/icons/nestopia48.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/48x48/apps/nestopia.png + install -m 0644 source/unix/icons/nestopia64.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/64x64/apps/nestopia.png + install -m 0644 source/unix/icons/nestopia96.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/96x96/apps/nestopia.png + install -m 0644 source/unix/icons/nestopia128.png $(DESTDIR)$(PREFIX)/share/icons/hicolor/128x128/apps/nestopia.png + install -m 0644 source/unix/icons/*.svg $(DESTDIR)$(PREFIX)/share/icons/hicolor/scalable/apps uninstall: xdg-desktop-menu uninstall $(DATADIR)/nestopia.desktop