From b7d69265567021a0c61e05069d591e379384f5c3 Mon Sep 17 00:00:00 2001 From: orbea Date: Mon, 28 Dec 2020 10:19:34 -0800 Subject: [PATCH 1/4] build: Remove root check for make install. --- bsnes/target-bsnes/GNUmakefile | 4 ---- 1 file changed, 4 deletions(-) diff --git a/bsnes/target-bsnes/GNUmakefile b/bsnes/target-bsnes/GNUmakefile index c693a2ed..effa6b9d 100644 --- a/bsnes/target-bsnes/GNUmakefile +++ b/bsnes/target-bsnes/GNUmakefile @@ -40,8 +40,6 @@ verbose: hiro.verbose ruby.verbose nall.verbose all; install: all ifeq ($(platform),windows) -else ifeq ($(shell id -un),root) - $(error "make install should not be run as root") else ifeq ($(platform),macos) mkdir -p ~/Library/Application\ Support/$(name)/ mkdir -p ~/Library/Application\ Support/$(name)/Database/ @@ -67,8 +65,6 @@ endif uninstall: ifeq ($(platform),windows) -else ifeq ($(shell id -un),root) - $(error "make uninstall should not be run as root") else ifeq ($(platform),macos) rm -rf /Applications/$(name).app else ifneq ($(filter $(platform),linux bsd),) From d662bcb50fe3a20566c328d5659d8801822354b0 Mon Sep 17 00:00:00 2001 From: orbea Date: Mon, 28 Dec 2020 10:23:35 -0800 Subject: [PATCH 2/4] build: Support DESTDIR. --- bsnes/target-bsnes/GNUmakefile | 38 +++++++++++++++++----------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/bsnes/target-bsnes/GNUmakefile b/bsnes/target-bsnes/GNUmakefile index effa6b9d..7769e130 100644 --- a/bsnes/target-bsnes/GNUmakefile +++ b/bsnes/target-bsnes/GNUmakefile @@ -47,20 +47,20 @@ else ifeq ($(platform),macos) mkdir -p ~/Library/Application\ Support/$(name)/Shaders/ cp -R out/$(name).app /Applications/$(name).app else ifneq ($(filter $(platform),linux bsd),) - mkdir -p $(prefix)/bin/ - mkdir -p $(prefix)/share/applications/ - mkdir -p $(prefix)/share/icons/hicolor/256x256/apps/ - mkdir -p $(prefix)/share/icons/hicolor/scalable/apps/ - mkdir -p $(prefix)/share/$(name)/ - mkdir -p $(prefix)/share/$(name)/Database/ - mkdir -p $(prefix)/share/$(name)/Firmware/ - mkdir -p $(prefix)/share/$(name)/Shaders/ - cp out/$(name) $(prefix)/bin/$(name) - cp $(ui)/resource/$(name).desktop $(prefix)/share/applications/$(name).desktop - cp $(ui)/resource/$(name).png $(prefix)/share/icons/hicolor/256x256/apps/$(name).png - cp $(ui)/resource/$(name).svg $(prefix)/share/icons/hicolor/scalable/apps/$(name).svg - cp Database/* $(prefix)/share/$(name)/Database/ - cp -r ../shaders/* $(prefix)/share/$(name)/Shaders/ + mkdir -p $(DESTDIR)$(prefix)/bin/ + mkdir -p $(DESTDIR)$(prefix)/share/applications/ + mkdir -p $(DESTDIR)$(prefix)/share/icons/hicolor/256x256/apps/ + mkdir -p $(DESTDIR)$(prefix)/share/icons/hicolor/scalable/apps/ + mkdir -p $(DESTDIR)$(prefix)/share/$(name)/ + mkdir -p $(DESTDIR)$(prefix)/share/$(name)/Database/ + mkdir -p $(DESTDIR)$(prefix)/share/$(name)/Firmware/ + mkdir -p $(DESTDIR)$(prefix)/share/$(name)/Shaders/ + cp out/$(name) $(DESTDIR)$(prefix)/bin/$(name) + cp $(ui)/resource/$(name).desktop $(DESTDIR)$(prefix)/share/applications/$(name).desktop + cp $(ui)/resource/$(name).png $(DESTDIR)$(prefix)/share/icons/hicolor/256x256/apps/$(name).png + cp $(ui)/resource/$(name).svg $(DESTDIR)$(prefix)/share/icons/hicolor/scalable/apps/$(name).svg + cp Database/* $(DESTDIR)$(prefix)/share/$(name)/Database/ + cp -r ../shaders/* $(DESTDIR)$(prefix)/share/$(name)/Shaders/ endif uninstall: @@ -68,9 +68,9 @@ ifeq ($(platform),windows) else ifeq ($(platform),macos) rm -rf /Applications/$(name).app else ifneq ($(filter $(platform),linux bsd),) - rm -f $(prefix)/bin/$(name) - rm -f $(prefix)/share/applications/$(name).desktop - rm -f $(prefix)/share/icons/hicolor/256x256/apps/$(name).png - rm -f $(prefix)/share/icons/hicolor/scalable/apps/$(name).svg - rm -rf $(prefix)/share/$(name) + rm -f $(DESTDIR)$(prefix)/bin/$(name) + rm -f $(DESTDIR)$(prefix)/share/applications/$(name).desktop + rm -f $(DESTDIR)$(prefix)/share/icons/hicolor/256x256/apps/$(name).png + rm -f $(DESTDIR)$(prefix)/share/icons/hicolor/scalable/apps/$(name).svg + rm -rf $(DESTDIR)$(prefix)/share/$(name) endif From 8a6b89d032452c806cc16804e1c43d98b9ea7585 Mon Sep 17 00:00:00 2001 From: orbea Date: Mon, 28 Dec 2020 10:35:47 -0800 Subject: [PATCH 3/4] build: Follow FHS default paths. --- bsnes/target-bsnes/GNUmakefile | 37 +++++++++++++++++----------------- nall/GNUmakefile | 5 ++++- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/bsnes/target-bsnes/GNUmakefile b/bsnes/target-bsnes/GNUmakefile index 7769e130..6c9058a1 100644 --- a/bsnes/target-bsnes/GNUmakefile +++ b/bsnes/target-bsnes/GNUmakefile @@ -47,20 +47,19 @@ else ifeq ($(platform),macos) mkdir -p ~/Library/Application\ Support/$(name)/Shaders/ cp -R out/$(name).app /Applications/$(name).app else ifneq ($(filter $(platform),linux bsd),) - mkdir -p $(DESTDIR)$(prefix)/bin/ - mkdir -p $(DESTDIR)$(prefix)/share/applications/ - mkdir -p $(DESTDIR)$(prefix)/share/icons/hicolor/256x256/apps/ - mkdir -p $(DESTDIR)$(prefix)/share/icons/hicolor/scalable/apps/ - mkdir -p $(DESTDIR)$(prefix)/share/$(name)/ - mkdir -p $(DESTDIR)$(prefix)/share/$(name)/Database/ - mkdir -p $(DESTDIR)$(prefix)/share/$(name)/Firmware/ - mkdir -p $(DESTDIR)$(prefix)/share/$(name)/Shaders/ - cp out/$(name) $(DESTDIR)$(prefix)/bin/$(name) - cp $(ui)/resource/$(name).desktop $(DESTDIR)$(prefix)/share/applications/$(name).desktop - cp $(ui)/resource/$(name).png $(DESTDIR)$(prefix)/share/icons/hicolor/256x256/apps/$(name).png - cp $(ui)/resource/$(name).svg $(DESTDIR)$(prefix)/share/icons/hicolor/scalable/apps/$(name).svg - cp Database/* $(DESTDIR)$(prefix)/share/$(name)/Database/ - cp -r ../shaders/* $(DESTDIR)$(prefix)/share/$(name)/Shaders/ + mkdir -p $(DESTDIR)$(bindir) + mkdir -p $(DESTDIR)$(datarootdir)/applications + mkdir -p $(DESTDIR)$(datarootdir)/icons/hicolor/256x256/apps + mkdir -p $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps + mkdir -p $(DESTDIR)$(datadir)/$(name)/Database + mkdir -p $(DESTDIR)$(datadir)/$(name)/Firmware + mkdir -p $(DESTDIR)$(datadir)/$(name)/Shaders + cp out/$(name) $(DESTDIR)$(bindir)/$(name) + cp $(ui)/resource/$(name).desktop $(DESTDIR)$(datarootdir)/applications/$(name).desktop + cp $(ui)/resource/$(name).png $(DESTDIR)$(datarootdir)/icons/hicolor/256x256/apps/$(name).png + cp $(ui)/resource/$(name).svg $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/$(name).svg + cp Database/* $(DESTDIR)$(datadir)/$(name)/Database/ + cp -r ../shaders/* $(DESTDIR)$(datadir)/$(name)/Shaders/ endif uninstall: @@ -68,9 +67,9 @@ ifeq ($(platform),windows) else ifeq ($(platform),macos) rm -rf /Applications/$(name).app else ifneq ($(filter $(platform),linux bsd),) - rm -f $(DESTDIR)$(prefix)/bin/$(name) - rm -f $(DESTDIR)$(prefix)/share/applications/$(name).desktop - rm -f $(DESTDIR)$(prefix)/share/icons/hicolor/256x256/apps/$(name).png - rm -f $(DESTDIR)$(prefix)/share/icons/hicolor/scalable/apps/$(name).svg - rm -rf $(DESTDIR)$(prefix)/share/$(name) + rm -f $(DESTDIR)$(bindir)/$(name) + rm -f $(DESTDIR)$(datarootdir)/applications/$(name).desktop + rm -f $(DESTDIR)$(datarootdir)/icons/hicolor/256x256/apps/$(name).png + rm -f $(DESTDIR)$(datarootdir)/icons/hicolor/scalable/apps/$(name).svg + rm -rf $(DESTDIR)$(datadir)/$(name) endif diff --git a/nall/GNUmakefile b/nall/GNUmakefile index f064ae77..c3df2838 100755 --- a/nall/GNUmakefile +++ b/nall/GNUmakefile @@ -239,5 +239,8 @@ strne = $(if $(filter-out xx,x$(subst $1,,$2)$(subst $2,,$1)x),1,) ifeq ($(platform),windows) prefix := $(subst $([space]),\$([space]),$(strip $(call strtr,$(LOCALAPPDATA),\,/))) else - prefix := $(HOME)/.local + prefix ?= /usr/local + bindir ?= $(prefix)/bin + datarootdir ?= $(prefix)/share + datadir ?= $(datarootdir) endif From adafcb4430b6115e4e91e7fe1b5ff3059df1914f Mon Sep 17 00:00:00 2001 From: orbea Date: Mon, 28 Dec 2020 10:57:28 -0800 Subject: [PATCH 4/4] nall: Use the value of datadir to find the assets dir. --- bsnes/target-bsnes/bsnes.cpp | 3 +++ nall/GNUmakefile | 1 + nall/path.hpp | 2 ++ 3 files changed, 6 insertions(+) diff --git a/bsnes/target-bsnes/bsnes.cpp b/bsnes/target-bsnes/bsnes.cpp index c7bb3dd3..5c07e06b 100644 --- a/bsnes/target-bsnes/bsnes.cpp +++ b/bsnes/target-bsnes/bsnes.cpp @@ -12,6 +12,9 @@ auto locate(string name) -> string { location = {Path::userData(), "bsnes/", name}; if(inode::exists(location)) return location; + location = {Path::sharedData(), "bsnes/", name}; + if(inode::exists(location)) return location; + directory::create({Path::userSettings(), "bsnes/"}); return {Path::userSettings(), "bsnes/", name}; } diff --git a/nall/GNUmakefile b/nall/GNUmakefile index c3df2838..dcca2b6d 100755 --- a/nall/GNUmakefile +++ b/nall/GNUmakefile @@ -243,4 +243,5 @@ else bindir ?= $(prefix)/bin datarootdir ?= $(prefix)/share datadir ?= $(datarootdir) + flags += -DDATADIR=\"$(datadir)\" endif diff --git a/nall/path.hpp b/nall/path.hpp index 3353817b..a9f0b496 100644 --- a/nall/path.hpp +++ b/nall/path.hpp @@ -137,6 +137,8 @@ inline auto sharedData() -> string { result.transform("\\", "/"); #elif defined(PLATFORM_MACOS) string result = "/Library/Application Support/"; + #elif defined(DATADIR) + string result = DATADIR; #else string result = "/usr/share/"; #endif