22.SUFFIXES :
33# ---------------------------------------------------------------------------------
44
5+ ifeq ($(strip $(INSTALL_PREFIX ) ) ,)
56ifeq ($(strip $(DEVKITPRO ) ) ,)
67$(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>devkitPro")
78endif
9+ # Prevent variable expansion so it stays as-is in the installable rules
10+ INSTALL_PREFIX := $$(DEVKITPRO ) /libogc2
11+ endif
12+
13+ INCDEST ?= include
14+ LIBDEST ?= lib
815
916ifeq ($(strip $(DEVKITPPC ) ) ,)
1017$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
@@ -228,6 +235,16 @@ gc/ogc/libversion.h : $(CURFILE)
228235 @echo >> $@
229236 @echo "# endif // __OGC_LIBVERSION_H__" >> $@
230237
238+ # ---------------------------------------------------------------------------------
239+ RULES := wii_rules gamecube_rules
240+ % _rules : $(BASEDIR ) /% _rules.in
241+ # ---------------------------------------------------------------------------------
242+ @sed \
243+ -e "s|@PREFIX@|\$(INSTALL_PREFIX)|g" \
244+ -e "s|@INCDIR@|$(INCDEST)|g" \
245+ -e "s|@LIBDIR@|$(LIBDEST)|g" \
246+ $< > $@
247+
231248# ---------------------------------------------------------------------------------
232249asndlib.o : asnd_dsp_mixer.h
233250# ---------------------------------------------------------------------------------
@@ -299,27 +316,31 @@ install-headers: gc/ogc/libversion.h
299316 @cp $(BASEDIR)/gc/wiikeyboard/*.h $(INCDIR)/wiikeyboard
300317
301318# ---------------------------------------------------------------------------------
302- install : $(PLATFORMS ) install-headers
319+ install : $(PLATFORMS ) $( RULES ) install-headers
303320# ---------------------------------------------------------------------------------
304- @mkdir -p $(DESTDIR)$(DEVKITPRO)/libogc2
305- @cp -frv include $(DESTDIR)$(DEVKITPRO)/libogc2
306- @cp -frv lib $(DESTDIR)$(DEVKITPRO)/libogc2
307- @cp -frv $(BASEDIR)/libogc_license.txt $(DESTDIR)$(DEVKITPRO)/libogc2
308- @cp -frv $(BASEDIR)/gamecube_rules $(BASEDIR)/wii_rules $(DESTDIR)$(DEVKITPRO)/libogc2
321+ @$(eval INSTALL_PREFIX := $(INSTALL_PREFIX)) # Expand
322+ @mkdir -p $(DESTDIR)$(INSTALL_PREFIX)
323+ @mkdir -p $(DESTDIR)$(INSTALL_PREFIX)/$(INCDEST)
324+ @cp -frv include/* -t $(DESTDIR)$(INSTALL_PREFIX)/$(INCDEST)
325+ @mkdir -p $(DESTDIR)$(INSTALL_PREFIX)/$(LIBDEST)
326+ @cp -frv lib/* -t $(DESTDIR)$(INSTALL_PREFIX)/$(LIBDEST)
327+ @cp -frv $(BASEDIR)/libogc_license.txt $(DESTDIR)$(INSTALL_PREFIX)
328+ @cp -frv $(RULES) $(DESTDIR)$(INSTALL_PREFIX)
309329
310330# ---------------------------------------------------------------------------------
311331uninstall :
312332# ---------------------------------------------------------------------------------
313- @rm -frv $(DESTDIR)$(DEVKITPRO)/libogc2
333+ @$(eval INSTALL_PREFIX := $(INSTALL_PREFIX)) # Expand
334+ @rm -frv $(DESTDIR)$(INSTALL_PREFIX)
314335
315336# ---------------------------------------------------------------------------------
316- dist : $(PLATFORMS ) install-headers
337+ dist : $(PLATFORMS ) $( RULES ) install-headers
317338# ---------------------------------------------------------------------------------
318339 @tar -C $(BASEDIR) --exclude-vcs --exclude-vcs-ignores --exclude .github \
319340 -cvjf $(BUILDDIR)/libogc2-src-$(VERSTRING).tar.bz2 .
320341
321- @cp $(BASEDIR)/libogc_license.txt $(BASEDIR)/gamecube_rules $(BASEDIR)/wii_rules .
322- @tar -cvjf libogc2-$(VERSTRING).tar.bz2 include lib libogc_license.txt gamecube_rules wii_rules
342+ @cp $(BASEDIR)/libogc_license.txt .
343+ @tar -cvjf libogc2-$(VERSTRING).tar.bz2 include lib libogc_license.txt $(RULES)
323344
324345
325346ifeq ($(strip $(LIBRARIES ) ) ,)
@@ -342,6 +363,7 @@ clean:
342363# ---------------------------------------------------------------------------------
343364 rm -fr wii cube
344365 rm -fr gc/ogc/libversion.h
366+ rm -fr $(RULES)
345367 rm -fr $(DEPS)
346368 rm -fr $(LIBS)
347369 rm -fr $(INCDIR)
0 commit comments