@@ -111,28 +111,44 @@ ifndef VERSION
111
111
VERSION =1.3.0
112
112
endif
113
113
114
+ ifndef PACKAGE
115
+ PACKAGE =tremulous-grangerhub
116
+ endif
117
+
114
118
ifndef CLIENTBIN
115
119
CLIENTBIN =tremulous
116
120
endif
117
121
122
+ ifndef CLIENTBINSH
123
+ CLIENTBINSH =$(CLIENTBIN ) .sh
124
+ endif
125
+
118
126
ifndef SERVERBIN
119
127
SERVERBIN =tremded
120
128
endif
121
129
130
+ ifndef SERVERBINSH
131
+ SERVERBINSH =$(SERVERBIN ) .sh
132
+ endif
133
+
122
134
ifndef BASEGAME
123
135
BASEGAME =gpp
124
136
endif
125
137
126
138
BASEGAME_CFLAGS =-I../../${MOUNT_DIR}
127
139
128
140
ifndef COPYDIR
129
- COPYDIR ="/usr/local/games/tremulous "
141
+ COPYDIR ="/opt/ $( PACKAGE ) "
130
142
endif
131
143
132
144
ifndef COPYBINDIR
133
145
COPYBINDIR =$(COPYDIR )
134
146
endif
135
147
148
+ ifndef PREFIX
149
+ PREFIX =/usr
150
+ endif
151
+
136
152
ifndef MOUNT_DIR
137
153
MOUNT_DIR =src
138
154
endif
@@ -256,6 +272,11 @@ endif
256
272
BD =$(BUILD_DIR ) /debug-$(PLATFORM ) -$(ARCH )
257
273
BR =$(BUILD_DIR ) /release-$(PLATFORM ) -$(ARCH )
258
274
275
+ # If build target not defined, assume release (for install target)
276
+ ifndef B
277
+ B = $(BR )
278
+ endif
279
+
259
280
CDIR =$(MOUNT_DIR ) /client
260
281
SDIR =$(MOUNT_DIR ) /server
261
282
RCOMMONDIR =$(MOUNT_DIR ) /renderercommon
@@ -339,8 +360,10 @@ INSTALL=install
339
360
MKDIR =mkdir
340
361
EXTRA_FILES =
341
362
CLIENT_EXTRA_FILES =
363
+ INSTALL_DIR =
342
364
343
365
ifneq (,$(findstring "$(PLATFORM ) ", "linux" "gnu_kfreebsd" "kfreebsd-gnu" "gnu") )
366
+ INSTALL_DIR =/opt/tremulous-grangerhub
344
367
BASE_CFLAGS += -DUSE_ICON
345
368
CLIENT_CFLAGS += $(SDL_CFLAGS )
346
369
@@ -1225,14 +1248,15 @@ endif
1225
1248
@echo " Output:"
1226
1249
$(call print_list, $(NAKED_TARGETS))
1227
1250
@echo ""
1228
- @$(MAKE) $(TARGETS) $(B).zip V=$(V)
1251
+ @$(MAKE) $(TARGETS) $(B).zip $(B)/$(CLIENTBINSH) $(B)/$(SERVERBINSH) V=$(V)
1229
1252
1230
1253
$(B ) .zip : $(TARGETS )
1231
1254
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)
1233
1256
else
1234
1257
@rm -f $@
1235
- @(cd $(B) && zip -r9 ../../$@ $(NAKED_TARGETS))
1258
+ @(cd $(B) && zip -qr9 ../../$@ $(NAKED_TARGETS))
1259
+ @echo "Created $@"
1236
1260
endif
1237
1261
1238
1262
makedirs :
@@ -2616,18 +2640,21 @@ $(B)/$(BASEGAME)_11/vm/ui.qvm: $(UIVMOBJ11) $(UIDIR)/ui_syscalls_11.asm $(Q3ASM)
2616
2640
# ############################################################################
2617
2641
2618
2642
$(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/)
2620
2645
2621
2646
$(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/)
2623
2649
2624
2650
2625
2651
# ############################################################################
2626
2652
# # Assets Package
2627
2653
# ############################################################################
2628
2654
2629
2655
$(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 * )
2631
2658
@mv $(ASSETS_DIR ) /data-$(VERSION ) .pk3 $(B ) /$(BASEGAME )
2632
2659
2633
2660
# ############################################################################
@@ -2904,6 +2931,46 @@ distclean: clean toolsclean
2904
2931
dist :
2905
2932
git archive --format zip --output $(CLIENTBIN ) -$(VERSION ) .zip HEAD
2906
2933
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
+
2907
2974
# ############################################################################
2908
2975
# DEPENDENCIES
2909
2976
# ############################################################################
@@ -2917,11 +2984,13 @@ endif
2917
2984
.PHONY : all clean clean2 clean-debug clean-release \
2918
2985
debug default dist distclean makedirs release targets \
2919
2986
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
2925
2994
2926
2995
# If the target name contains "clean", don't do a parallel build
2927
2996
ifneq ($(findstring clean, $(MAKECMDGOALS ) ) ,)
0 commit comments