]> Dogcows Code - chaz/yoink/blobdiff - build/arch/win32/rules.mk
build system enhancements
[chaz/yoink] / build / arch / win32 / rules.mk
diff --git a/build/arch/win32/rules.mk b/build/arch/win32/rules.mk
new file mode 100644 (file)
index 0000000..0f5eae5
--- /dev/null
@@ -0,0 +1,43 @@
+#
+# Yoink
+# Run this script to create a win32 package.
+#
+# You should typically only run this through the "portable" and "installer"
+# makes targets in the package root directory.  The build system will take
+# care to pass the correct arguments.
+#
+
+docs           = AUTHORS COPYING README TODO
+libraries      = libogg-0 libpng15 libvorbis-0 libvorbisfile-3 lua51 OpenAL32 SDL zlib1
+
+MAN2HTML       = lua doc/man2html.lua
+UNIX2DOS       = arch/win32/unix2dos.sh
+MAKENSIS       = makensis
+
+stagedir       = $(builddir)/$(tarname)
+zipfile                = $(tarname).zip
+installer      = $(TARNAME)setup-$(VERSION)$(EXEEXT)
+
+__prepackage__: all
+       rm -rf $(stagedir) && mkdir -p $(stagedir)
+       cp -f $(builddir)/src/yoink$(EXEEXT) $(stagedir)
+       $(foreach l,$(libraries),cp -f $(bindir)/$l.dll $(stagedir);)
+       $(foreach d,$(SUBDIRS),$(foreach f,$(datadir_$(d)),\
+               mkdir -p $(dir $(f:$(d)%=$(stagedir)/data%)) && cp -f $(f) $(dir $(f:$(d)%=$(stagedir)/data%));))
+       $(MAN2HTML) -o $(stagedir)/Manual.html && $(UNIX2DOS) $(stagedir)/Manual.html
+       $(foreach f,$(docs),$(UNIX2DOS) $f $(stagedir)/$f.txt;)
+
+package: __prepackage__
+       cd $(builddir) && zip -r $(zipfile) $(tarname)
+       rm -rf $(stagedir)
+       mv -f $(builddir)/$(zipfile) $(zipfile)
+
+installer: __prepackage__
+       cp -f arch/win32/yoink.nsi $(builddir)/yoink.nsi
+       cd $(builddir) && $(MAKENSIS) -DROOTPATH=$(PWD) -DINSTALLFILES=$(PWD)/$(stagedir) \
+               -DVERSION=$(VERSION) -DOUTFILE=$(installer) yoink.nsi
+       rm -rf $(builddir)/yoink.nsi $(stagedir)
+       mv -f $(builddir)/$(installer) $(installer) && chmod +x $(installer)
+
+.PHONY: __prepackage__ package installer
+
This page took 0.019896 seconds and 4 git commands to generate.