Skip to content

Commit a1e36fe

Browse files
committed
added Linux install target for superuser; removed some .PHONY targets
1 parent 6ee082b commit a1e36fe

File tree

1 file changed

+81
-12
lines changed

1 file changed

+81
-12
lines changed

Diff for: Makefile

+81-12
Original file line numberDiff line numberDiff line change
@@ -111,28 +111,44 @@ ifndef VERSION
111111
VERSION=1.3.0
112112
endif
113113

114+
ifndef PACKAGE
115+
PACKAGE=tremulous-grangerhub
116+
endif
117+
114118
ifndef CLIENTBIN
115119
CLIENTBIN=tremulous
116120
endif
117121

122+
ifndef CLIENTBINSH
123+
CLIENTBINSH=$(CLIENTBIN).sh
124+
endif
125+
118126
ifndef SERVERBIN
119127
SERVERBIN=tremded
120128
endif
121129

130+
ifndef SERVERBINSH
131+
SERVERBINSH=$(SERVERBIN).sh
132+
endif
133+
122134
ifndef BASEGAME
123135
BASEGAME=gpp
124136
endif
125137

126138
BASEGAME_CFLAGS=-I../../${MOUNT_DIR}
127139

128140
ifndef COPYDIR
129-
COPYDIR="/usr/local/games/tremulous"
141+
COPYDIR="/opt/$(PACKAGE)"
130142
endif
131143

132144
ifndef COPYBINDIR
133145
COPYBINDIR=$(COPYDIR)
134146
endif
135147

148+
ifndef PREFIX
149+
PREFIX=/usr
150+
endif
151+
136152
ifndef MOUNT_DIR
137153
MOUNT_DIR=src
138154
endif
@@ -256,6 +272,11 @@ endif
256272
BD=$(BUILD_DIR)/debug-$(PLATFORM)-$(ARCH)
257273
BR=$(BUILD_DIR)/release-$(PLATFORM)-$(ARCH)
258274

275+
# If build target not defined, assume release (for install target)
276+
ifndef B
277+
B = $(BR)
278+
endif
279+
259280
CDIR=$(MOUNT_DIR)/client
260281
SDIR=$(MOUNT_DIR)/server
261282
RCOMMONDIR=$(MOUNT_DIR)/renderercommon
@@ -339,8 +360,10 @@ INSTALL=install
339360
MKDIR=mkdir
340361
EXTRA_FILES=
341362
CLIENT_EXTRA_FILES=
363+
INSTALL_DIR=
342364

343365
ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu" "gnu"))
366+
INSTALL_DIR=/opt/tremulous-grangerhub
344367
BASE_CFLAGS += -DUSE_ICON
345368
CLIENT_CFLAGS += $(SDL_CFLAGS)
346369

@@ -1225,14 +1248,15 @@ endif
12251248
@echo " Output:"
12261249
$(call print_list, $(NAKED_TARGETS))
12271250
@echo ""
1228-
@$(MAKE) $(TARGETS) $(B).zip V=$(V)
1251+
@$(MAKE) $(TARGETS) $(B).zip $(B)/$(CLIENTBINSH) $(B)/$(SERVERBINSH) V=$(V)
12291252

12301253
$(B).zip: $(TARGETS)
12311254
ifeq ($(PLATFORM),darwin)
1232-
@("./make-macosx-app.sh" release $(ARCH); if [ "$$?" -eq 0 ] && [ -d "$(B)/Tremulous.app" ]; then rm -f $@; cd $(B) && zip --symlinks -r9 ../../$@ GPL COPYING CC `find "Tremulous.app" -print | sed -e "s!$(B)/!!g"`; else rm -f $@; cd $(B) && zip -r9 ../../$@ $(NAKED_TARGETS); fi)
1255+
@("./make-macosx-app.sh" release $(ARCH); if [ "$$?" -eq 0 ] && [ -d "$(B)/Tremulous.app" ]; then rm -f $@; cd $(B) && zip --symlinks -qr9 ../../$@ GPL COPYING CC `find "Tremulous.app" -print | sed -e "s!$(B)/!!g"`; else rm -f $@; cd $(B) && zip -qr9 ../../$@ $(NAKED_TARGETS); fi)
12331256
else
12341257
@rm -f $@
1235-
@(cd $(B) && zip -r9 ../../$@ $(NAKED_TARGETS))
1258+
@(cd $(B) && zip -qr9 ../../$@ $(NAKED_TARGETS))
1259+
@echo "Created $@"
12361260
endif
12371261

12381262
makedirs:
@@ -2616,18 +2640,21 @@ $(B)/$(BASEGAME)_11/vm/ui.qvm: $(UIVMOBJ11) $(UIDIR)/ui_syscalls_11.asm $(Q3ASM)
26162640
#############################################################################
26172641

26182642
$(B)/$(BASEGAME)/vms-gpp-$(VERSION).pk3: $(B)/$(BASEGAME)/vm/ui.qvm $(B)/$(BASEGAME)/vm/cgame.qvm $(B)/$(BASEGAME)/vm/game.qvm
2619-
@(cd $(B)/$(BASEGAME) && zip -r vms-$(VERSION).pk3 vm/)
2643+
$(echo_cmd) "Created $@"
2644+
@(cd $(B)/$(BASEGAME) && zip -qr $(@F) vm/)
26202645

26212646
$(B)/$(BASEGAME)_11/vms-1.1.0-$(VERSION).pk3: $(B)/$(BASEGAME)_11/vm/ui.qvm $(B)/$(BASEGAME)_11/vm/cgame.qvm
2622-
@(cd $(B)/$(BASEGAME)_11 && zip -r vms-$(VERSION).pk3 vm/)
2647+
$(echo_cmd) "Created $@"
2648+
@(cd $(B)/$(BASEGAME)_11 && zip -qr $(@F) vm/)
26232649

26242650

26252651
#############################################################################
26262652
## Assets Package
26272653
#############################################################################
26282654

26292655
$(B)/$(BASEGAME)/data-$(VERSION).pk3: $(ASSETS_DIR)/ui/main.menu
2630-
@(cd $(ASSETS_DIR) && zip -r data-$(VERSION).pk3 *)
2656+
$(echo_cmd) "Created $@"
2657+
@(cd $(ASSETS_DIR) && zip -qr data-$(VERSION).pk3 *)
26312658
@mv $(ASSETS_DIR)/data-$(VERSION).pk3 $(B)/$(BASEGAME)
26322659

26332660
#############################################################################
@@ -2904,6 +2931,46 @@ distclean: clean toolsclean
29042931
dist:
29052932
git archive --format zip --output $(CLIENTBIN)-$(VERSION).zip HEAD
29062933

2934+
#############################################################################
2935+
# INSTALL (only for Linux platforms)
2936+
#############################################################################
2937+
2938+
# Shell scripts for running binaries
2939+
2940+
$(B)/$(CLIENTBINSH):
2941+
@echo '#!/usr/bin/env sh' > $@
2942+
@echo 'cd $(COPYBINDIR)' >> $@
2943+
@echo './$(CLIENTBIN) "$$@"' >> $@
2944+
2945+
$(B)/$(SERVERBINSH):
2946+
@echo '#!/usr/bin/env sh' > $@
2947+
@echo 'cd $(COPYBINDIR)' >> $@
2948+
@echo './$(SERVERBIN) "$$@"' >> $@
2949+
2950+
install: release
2951+
ifneq (,$(findstring "$(PLATFORM)", "linux" "gnu_kfreebsd" "kfreebsd-gnu" "gnu"))
2952+
$(echo_cmd) "Installing for Linux platform in $(COPYBINDIR) and $(PREFIX)"
2953+
@$(MKDIR) -p $(COPYBINDIR)
2954+
@cd $(BR) && for file in $(NAKED_TARGETS); do \
2955+
$(INSTALL) -D $$file $(COPYBINDIR)/$$file; \
2956+
done
2957+
# @(cd $(BR) && $(INSTALL) $() $(COPYBINDIR) )
2958+
# TODO: create these .sh files:
2959+
@$(INSTALL) -d $(PREFIX)/bin
2960+
@$(INSTALL) -D -m755 $(BR)/$(CLIENTBINSH) $(BR)/$(SERVERBINSH) $(PREFIX)/bin
2961+
# Install the .desktop, icon files, license, etc.
2962+
@$(INSTALL) -D -m644 "misc/io.github.grangerhub.Tremulous.png" "$(PREFIX)/share/pixmaps/tremulous.png"
2963+
@$(INSTALL) -D -m644 "misc/io.github.grangerhub.Tremulous.desktop" \
2964+
"$(PREFIX)/share/applications/tremulous.desktop"
2965+
@$(INSTALL) -d "$(PREFIX)/share/metainfo/" "$(PREFIX)/share/licenses/$(PACKAGE)/"
2966+
@$(INSTALL) -D -m644 "misc/io.github.grangerhub.Tremulous.appdata.xml" \
2967+
"$(PREFIX)/share/metainfo/"
2968+
@$(INSTALL) -D -m644 "COPYING" "$(PREFIX)/share/licenses/$(PACKAGE)/"
2969+
@$(INSTALL) -D -m644 "GPL" "$(PREFIX)/share/licenses/$(PACKAGE)/"
2970+
@$(INSTALL) -D -m644 "CC" "$(PREFIX)/share/licenses/$(PACKAGE)/"
2971+
endif
2972+
2973+
29072974
#############################################################################
29082975
# DEPENDENCIES
29092976
#############################################################################
@@ -2917,11 +2984,13 @@ endif
29172984
.PHONY: all clean clean2 clean-debug clean-release \
29182985
debug default dist distclean makedirs release targets \
29192986
toolsclean toolsclean2 toolsclean-debug toolsclean-release \
2920-
$(OBJ_D_FILES) $(TOOLSOBJ_D_FILES) $(B)/scripts \
2921-
$(B)/$(BASEGAME)/data-$(VERSION).pk3 \
2922-
$(B)/$(BASEGAME)_11/vms-$(VERSION).pk3 \
2923-
$(B)/$(BASEGAME)/vms-$(VERSION).pk3 \
2924-
$(B).zip
2987+
$(OBJ_D_FILES) $(TOOLSOBJ_D_FILES) $(B)/scripts
2988+
2989+
# removing zip files from phony for install target not recreating them as root
2990+
# $(B)/$(BASEGAME)/data-$(VERSION).pk3 \
2991+
# $(B)/$(BASEGAME)_11/vms-$(VERSION).pk3 \
2992+
# $(B)/$(BASEGAME)/vms-$(VERSION).pk3 \
2993+
# $(B).zip
29252994

29262995
# If the target name contains "clean", don't do a parallel build
29272996
ifneq ($(findstring clean, $(MAKECMDGOALS)),)

0 commit comments

Comments
 (0)