shithub: choc

Download patch

ref: b6ba5eb89afe488f66407562ff57da596e7c841e
parent: ba8400b38d8264fe28ec03f772348b288a6ed075
parent: d66659c6067ec18022718457bcf7c73145cf7b38
author: Simon Howard <[email protected]>
date: Fri Dec 26 13:02:34 EST 2014

Merge pull request #495 from WinterMute/build-outside-source-dir

Allow building in subdirectory or outside source directory

This one allows you to configure && make from a subdirectory or a
directory outside the source tree. Useful for building several versions
in the same tree for comparison.

--- a/data/Makefile.am
+++ b/data/Makefile.am
@@ -14,9 +14,9 @@
              @[email protected]
 
 @[email protected] : doom.png
-	cp doom.png $@
+	cp $(top_srcdir)/data/doom.png $@
 
 @[email protected] : setup.png
-	cp setup.png $@
+	cp $(top_srcdir)/data/setup.png $@
 
 CLEANFILES = $(icons_DATA)
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -47,85 +47,87 @@
 CLEANFILES = $(GENERATED_MAN_PAGES) $(SETUP_MAN_PAGES) \
              $(doomdocs_DATA) $(hereticdocs_DATA) \
              $(hexendocs_DATA) $(strifedocs_DATA)
+MANDIR = $(top_srcdir)/man
+DOCGEN = $(MANDIR)/docgen
 
 $(SETUP_MAN_PAGES): chocolate-setup.6
 	cp $< $@
 
 @[email protected]: ../src $(MANPAGE_GEN_FILES)
-	./docgen -g doom -m doom.template ../src ../src/doom > $@
+	$(DOCGEN) -g doom -m doom.template $(top_srcdir)/src $(top_srcdir)/src/doom > $@
 
-default.cfg.5: ../src default.cfg.template
-	./docgen -g doom -m default.cfg.template \
-                 -c default ../src/m_config.c > $@
+default.cfg.5: $(top_srcdir)/src $(MANDIR)/default.cfg.template
+	$(DOCGEN) -g doom -m $(MANDIR)/default.cfg.template \
+                 -c default $(top_srcdir)/src/m_config.c > $@
 
 @[email protected]: ../src extra.cfg.template
-	./docgen -g doom -m extra.cfg.template \
-                 -c extended ../src/m_config.c > $@
+	$(DOCGEN) -g doom -m extra.cfg.template \
+                 -c extended $(top_srcdir)/src/m_config.c > $@
 
-CMDLINE.doom : CMDLINE.template ../src ../src/doom
-	./docgen -p CMDLINE.template ../src/ ../src/doom/ > $@
+CMDLINE.doom : $(MANDIR)/CMDLINE.template $(top_srcdir)/src $(top_srcdir)/src/doom
+	$(DOCGEN) -p $(MANDIR)/CMDLINE.template $(top_srcdir)/src/ $(top_srcdir)/src/doom/ > $@
 
-INSTALL.doom: INSTALL.template
-	./simplecpp -DDOOM -DPRECOMPILED < INSTALL.template > $@
+INSTALL.doom: $(MANDIR)/INSTALL.template
+	$(MANDIR)/simplecpp -DDOOM -DPRECOMPILED < $(MANDIR)/INSTALL.template > $@
 
 
-@[email protected]: ../src $(MANPAGE_GEN_FILES)
-	./docgen -g heretic -m heretic.template ../src ../src/heretic > $@
+@[email protected]: $(top_srcdir)/src $(MANPAGE_GEN_FILES)
+	$(DOCGEN) -g heretic -m $(top_srcdir)/man/heretic.template $(top_srcdir)/src $(top_srcdir)/src/heretic > $@
 
-heretic.cfg.5: ../src default.cfg.template
-	./docgen -g heretic -m default.cfg.template \
-                 -c default ../src/m_config.c > $@
+heretic.cfg.5: $(top_srcdir)/src $(MANDIR)/default.cfg.template
+	$(DOCGEN) -g heretic -m $(MANDIR)/default.cfg.template \
+                 -c default $(top_srcdir)/src/m_config.c > $@
 
-@[email protected]: ../src extra.cfg.template
-	./docgen -g heretic -m extra.cfg.template \
-                 -c extended ../src/m_config.c > $@
+@[email protected]: $(top_srcdir)/src $(MANDIR)/extra.cfg.template
+	$(DOCGEN) -g heretic -m $(MANDIR)/extra.cfg.template \
+                 -c extended $(top_srcdir)/src/m_config.c > $@
 
-CMDLINE.heretic : CMDLINE.template ../src ../src/heretic
-	./docgen -p CMDLINE.template ../src/ ../src/heretic/ > $@
+CMDLINE.heretic : $(MANDIR)/CMDLINE.template $(top_srcdir)/src $(top_srcdir)/src/heretic
+	$(DOCGEN) -p $(MANDIR)/CMDLINE.template $(top_srcdir)/src/ $(top_srcdir)/src/heretic/ > $@
 
-INSTALL.heretic: INSTALL.template
-	./simplecpp -DHERETIC -DPRECOMPILED < INSTALL.template > $@
+INSTALL.heretic: $(MANDIR)/INSTALL.template
+	$(MANDIR)/simplecpp -DHERETIC -DPRECOMPILED < $(MANDIR)/INSTALL.template > $@
 
 
-@[email protected]: ../src $(MANPAGE_GEN_FILES)
-	./docgen -g hexen -m hexen.template ../src ../src/hexen > $@
+@[email protected]: $(top_srcdir)/src $(MANPAGE_GEN_FILES)
+	$(DOCGEN) -g hexen -m $(MANDIR)/hexen.template $(top_srcdir)/src $(top_srcdir)/src/hexen > $@
 
-hexen.cfg.5: ../src default.cfg.template
-	./docgen -g hexen -m default.cfg.template \
-                 -c default ../src/m_config.c > $@
+hexen.cfg.5: $(top_srcdir)/src $(MANDIR)/default.cfg.template
+	$(DOCGEN) -g hexen -m $(MANDIR)default.cfg.template \
+                 -c default $(top_srcdir)/src/m_config.c > $@
 
-@[email protected]: ../src extra.cfg.template
-	./docgen -g hexen -m extra.cfg.template \
-                 -c extended ../src/m_config.c > $@
+@[email protected]: $(top_srcdir)/src $(MANDIR)/extra.cfg.template
+	$(DOCGEN) -g hexen -m $(MANDIR)/extra.cfg.template \
+                 -c extended $(top_srcdir)/src/m_config.c > $@
 
-CMDLINE.hexen : CMDLINE.template ../src ../src/hexen
-	./docgen -p CMDLINE.template ../src/ ../src/hexen/ > $@
+CMDLINE.hexen : $(MANDIR)/CMDLINE.template $(top_srcdir)/src $(top_srcdir)/src/hexen
+	$(DOCGEN) -p $(MANDIR)/CMDLINE.template $(top_srcdir)/src/ $(top_srcdir)/src/hexen/ > $@
 
-INSTALL.hexen: INSTALL.template
-	./simplecpp -DHEXEN -DPRECOMPILED < INSTALL.template > $@
+INSTALL.hexen: $(MANDIR)/INSTALL.template
+	$(MANDIR)/simplecpp -DHEXEN -DPRECOMPILED < $(MANDIR)/INSTALL.template > $@
 
 
-@[email protected]: ../src $(MANPAGE_GEN_FILES)
-	./docgen -g strife -m strife.template ../src ../src/strife > $@
+@[email protected]: $(top_srcdir)/src $(MANPAGE_GEN_FILES)
+	$(DOCGEN) -g strife -m $(MANDIR)/strife.template $(top_srcdir)/src $(top_srcdir)/src/strife > $@
 
-strife.cfg.5: ../src default.cfg.template
-	./docgen -g strife -m default.cfg.template \
-                 -c default ../src/m_config.c > $@
+strife.cfg.5: $(top_srcdir)/src $(MANDIR)/default.cfg.template
+	$(DOCGEN) -g strife -m $(MANDIR)/default.cfg.template \
+                 -c default $(top_srcdir)/src/m_config.c > $@
 
-@[email protected]: ../src extra.cfg.template
-	./docgen -g strife -m extra.cfg.template \
-                 -c extended ../src/m_config.c > $@
+@[email protected]: $(top_srcdir)/src $(MANDIR)/extra.cfg.template
+	$(DOCGEN) -g strife -m $(MANDIR)/extra.cfg.template \
+                 -c extended $(top_srcdir)/src/m_config.c > $@
 
-CMDLINE.strife : CMDLINE.template ../src ../src/strife
-	./docgen -p CMDLINE.template ../src/ ../src/strife/ > $@
+CMDLINE.strife : $(MANDIR)/CMDLINE.template $(top_srcdir)/src $(top_srcdir)/src/strife
+	$(DOCGEN) -p $(MANDIR)/CMDLINE.template $(top_srcdir)/src/ $(top_srcdir)/src/strife/ > $@
 
 INSTALL.strife: INSTALL.template
-	./simplecpp -DSTRIFE -DPRECOMPILED < INSTALL.template > $@
+	$(MANDIR)/simplecpp -DSTRIFE -DPRECOMPILED < $(MANDIR)/INSTALL.template > $@
 
 
-INSTALL: INSTALL.template
-	./simplecpp -DDOOM -DHERETIC -DHEXEN -DSTRIFE \
-	            -DPRECOMPILED < INSTALL.template > $@
+INSTALL: $(MANDIR)/INSTALL.template
+	$(MANDIR)//simplecpp -DDOOM -DHERETIC -DHEXEN -DSTRIFE \
+	            -DPRECOMPILED < $(MANDIR)/INSTALL.template > $@
 
 endif
 
--- a/opl/examples/Makefile.am
+++ b/opl/examples/Makefile.am
@@ -1,5 +1,5 @@
 
-AM_CFLAGS = -I..
+AM_CFLAGS = -I$(top_srcdir)/opl
 
 noinst_PROGRAMS=droplay
 
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -18,9 +18,9 @@
 
 execgames_SCRIPTS = $(SETUP_BINARIES)
 
-AM_CFLAGS = -I$(top_builddir)/textscreen            \
-            -I$(top_builddir)/opl                   \
-            -I$(top_builddir)/pcsound               \
+AM_CFLAGS = -I$(top_srcdir)/textscreen            \
+            -I$(top_srcdir)/opl                   \
+            -I$(top_srcdir)/pcsound               \
             @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@
 
 # Common source files used by absolutely everything:
--- a/src/doom/Makefile.am
+++ b/src/doom/Makefile.am
@@ -1,4 +1,4 @@
-AM_CFLAGS = -I.. @SDL_CFLAGS@ @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@
+AM_CFLAGS = -I$(top_srcdir)/src @SDL_CFLAGS@ @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@
 
 noinst_LIBRARIES=libdoom.a
 
--- a/src/heretic/Makefile.am
+++ b/src/heretic/Makefile.am
@@ -1,6 +1,6 @@
 
-AM_CFLAGS=-I..                                            \
-          -I$(top_builddir)/textscreen                    \
+AM_CFLAGS=-I$(top_srcdir)/src                           \
+          -I$(top_srcdir)/textscreen                    \
           @SDL_CFLAGS@ @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@
 
 noinst_LIBRARIES=libheretic.a
@@ -51,11 +51,11 @@
 r_things.c                                           \
 sb_bar.c                                             \
 sounds.c               sounds.h                      \
-s_sound.c              s_sound.h                     
+s_sound.c              s_sound.h
 
 EXTRA_DIST=                                          \
 i_sound.c                                            \
-i_ibm.c   
+i_ibm.c
 
 FEATURE_DEHACKED_SOURCE_FILES =            \
 deh_ammo.c                                 \
--- a/src/hexen/Makefile.am
+++ b/src/hexen/Makefile.am
@@ -1,4 +1,4 @@
-AM_CFLAGS=-I.. @SDL_CFLAGS@ @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@
+AM_CFLAGS=-I$(top_srcdir)/src @SDL_CFLAGS@ @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@
 
 noinst_LIBRARIES=libhexen.a
 
@@ -58,10 +58,10 @@
 st_start.c          st_start.h        \
 sv_save.c                             \
                     textdefs.h        \
-                    xddefs.h          
+                    xddefs.h
 
 EXTRA_DIST=                           \
 i_ibm.c                               \
-i_sound.c           
+i_sound.c
 
 libhexen_a_SOURCES=$(SOURCE_FILES)
--- a/src/resource.rc.in
+++ b/src/resource.rc.in
@@ -1,6 +1,6 @@
-1 ICON "../data/doom.ico"
+1 ICON "@top_srcdir@/data/doom.ico"
 
-CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "manifest.xml"
+CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "@top_srcdir@/src/manifest.xml"
 
 1 VERSIONINFO
 PRODUCTVERSION @WINDOWS_RC_VERSION@
--- a/src/setup-res.rc.in
+++ b/src/setup-res.rc.in
@@ -1,6 +1,6 @@
-1 ICON "../data/setup.ico"
+1 ICON "@top_srcdir@/data/setup.ico"
 
-1 24 MOVEABLE PURE "setup/setup-manifest.xml"
+1 24 MOVEABLE PURE "@top_builddir@/src/setup/setup-manifest.xml"
 
 1 VERSIONINFO
 PRODUCTVERSION @WINDOWS_RC_VERSION@
--- a/src/setup/Makefile.am
+++ b/src/setup/Makefile.am
@@ -3,7 +3,7 @@
 
 AM_CFLAGS = @SDL_CFLAGS@                                           \
             @SDLMIXER_CFLAGS@                                      \
-            -I$(top_builddir)/textscreen -I..
+            -I$(top_srcdir)/textscreen -I$(top_srcdir)/src
 
 noinst_LIBRARIES = libsetup.a
 
--- a/src/strife/Makefile.am
+++ b/src/strife/Makefile.am
@@ -1,4 +1,4 @@
-AM_CFLAGS = -I.. @SDL_CFLAGS@ @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@
+AM_CFLAGS = -I$(top_srcdir)/src @SDL_CFLAGS@ @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@
 
 noinst_LIBRARIES=libstrife.a
 
--- a/textscreen/Makefile.am
+++ b/textscreen/Makefile.am
@@ -1,5 +1,5 @@
 
-AM_CFLAGS = -I$(top_builddir)/src
+AM_CFLAGS = -I$(top_srcdir)/src
 
 CTAGS_ARGS=-I TXT_UNCAST_ARG+
 
--- a/textscreen/examples/Makefile.am
+++ b/textscreen/examples/Makefile.am
@@ -1,5 +1,5 @@
 
-AM_CFLAGS = -I.. -I$(top_builddir)/src
+AM_CFLAGS =  -I$(top_srcdir)/src -I$(top_srcdir)/textscreen
 
 noinst_PROGRAMS=guitest calculator