summaryrefslogtreecommitdiffstats
path: root/debian/rules.unpack
diff options
context:
space:
mode:
Diffstat (limited to 'debian/rules.unpack')
-rw-r--r--debian/rules.unpack210
1 files changed, 210 insertions, 0 deletions
diff --git a/debian/rules.unpack b/debian/rules.unpack
new file mode 100644
index 0000000..48f0221
--- /dev/null
+++ b/debian/rules.unpack
@@ -0,0 +1,210 @@
+# -*- makefile -*-
+# rules to unpack the source tarballs in $(srcdir); if the source dir already
+# exists, the rule exits with an error to prevent deletion of modified
+# source files. It has to be deleted manually.
+
+tarballs = $(gcc_tarball)
+ifneq (,$(filter yes, $(with_offload_nvptx) $(with_offload_gcn)))
+ tarballs += $(newlib_tarball)
+endif
+ifeq ($(with_binutils),yes)
+ tarballs += $(binutils_dsc)
+endif
+
+unpack_stamps = $(foreach i,$(tarballs),$(unpack_stamp)-$(i))
+
+unpack: stamp-dir $(unpack_stamp) debian-chmod
+$(unpack_stamp): $(unpack_stamps)
+$(unpack_stamp): $(foreach p,$(debian_tarballs),unpacked-$(p))
+ echo -e "\nBuilt from Debian source package $(PKGSOURCE)-$(SOURCE_VERSION)" \
+ > pxxx
+ echo -e "Integrated upstream packages in this version:\n" >> pxxx
+ for i in $(tarballs); do echo " $$i" >> pxxx; done
+ mv -f pxxx $@
+
+debian-chmod:
+ @chmod 755 debian/dh_*
+
+# ---------------------------------------------------------------------------
+
+gfdl_texinfo_files = \
+ gcc/doc/analyzer.texi \
+ gcc/doc/avr-mmcu.texi \
+ gcc/doc/bugreport.texi \
+ gcc/doc/cfg.texi \
+ gcc/doc/collect2.texi \
+ gcc/doc/compat.texi \
+ gcc/doc/configfiles.texi \
+ gcc/doc/configterms.texi \
+ gcc/doc/contrib.texi \
+ gcc/doc/contribute.texi \
+ gcc/doc/cpp.texi \
+ gcc/doc/cppdiropts.texi \
+ gcc/doc/cppenv.texi \
+ gcc/doc/cppinternals.texi \
+ gcc/doc/cppopts.texi \
+ gcc/doc/cppwarnopts.texi \
+ gcc/doc/extend.texi \
+ gcc/doc/fragments.texi \
+ gcc/doc/frontends.texi \
+ gcc/doc/gccint.texi \
+ gcc/doc/gcov.texi \
+ gcc/doc/gcov-dump.texi \
+ gcc/doc/gcov-tool.texi \
+ gcc/doc/generic.texi \
+ gcc/doc/gimple.texi \
+ gcc/doc/gnu.texi \
+ gcc/doc/gty.texi \
+ gcc/doc/headerdirs.texi \
+ gcc/doc/hostconfig.texi \
+ gcc/doc/implement-c.texi \
+ gcc/doc/implement-cxx.texi \
+ gcc/doc/install-old.texi \
+ gcc/doc/install.texi \
+ gcc/doc/interface.texi \
+ gcc/doc/invoke.texi \
+ gcc/doc/languages.texi \
+ gcc/doc/libgcc.texi \
+ gcc/doc/loop.texi \
+ gcc/doc/lto.texi \
+ gcc/doc/makefile.texi \
+ gcc/doc/match-and-simplify.texi \
+ gcc/doc/md.texi \
+ gcc/doc/objc.texi \
+ gcc/doc/optinfo.texi \
+ gcc/doc/options.texi \
+ gcc/doc/passes.texi \
+ gcc/doc/plugins.texi \
+ gcc/doc/poly-int.texi \
+ gcc/doc/portability.texi \
+ gcc/doc/rtl.texi \
+ gcc/doc/service.texi \
+ gcc/doc/sourcebuild.texi \
+ gcc/doc/standards.texi \
+ gcc/doc/tm.texi.in \
+ gcc/doc/tm.texi \
+ gcc/doc/tree-ssa.texi \
+ gcc/doc/trouble.texi \
+ gcc/doc/ux.texi \
+ gcc/doc/include/gcc-common.texi \
+ gcc/doc/include/funding.texi \
+ gcc/fortran/gfc-internals.texi \
+ gcc/fortran/invoke.texi \
+ gcc/fortran/intrinsic.texi \
+
+
+gfdl_toplevel_texinfo_files = \
+ gcc/doc/gcc.texi \
+ gcc/doc/lto-dump.texi \
+ gcc/ada/gnat-style.texi \
+ gcc/ada/gnat_rm.texi \
+ gcc/ada/gnat_ugn.texi \
+ gcc/fortran/gfortran.texi \
+ gcc/go/gccgo.texi \
+ libgomp/libgomp.texi \
+ libquadmath/libquadmath.texi \
+
+gfdl_manpages = \
+ gcc/doc/cpp.1 \
+ gcc/doc/g++.1 \
+ gcc/doc/gc-analyze.1 \
+ gcc/doc/gcc.1 \
+ gcc/doc/gccgo.1 \
+ gcc/doc/gcov.1 \
+ gcc/doc/gcov-dump.1 \
+ gcc/doc/gcov-tool.1 \
+ gcc/doc/gfortran.1 \
+ gcc/lto/lto-dump.1 \
+ gcc/doc/fsf-funding.7 \
+
+# ---------------------------------------------------------------------------
+$(unpack_stamp)-$(gcc_tarball): $(gcc_tarpath)
+ @echo "Build environment: derivative=$(derivative), release=$(distrelease)"
+ : # unpack gcc tarball
+ mkdir -p $(stampdir)
+ if [ -d $(srcdir) ]; then \
+ echo >&2 "Source directory $(srcdir) exists. Delete by hand"; \
+ false; \
+ fi
+ rm -rf $(gcc_srcdir)
+ tar -x -f $(gcc_tarpath)
+ mv $(gcc_srcdir) $(srcdir)
+ ln -sf libsanitizer $(srcdir)/libasan
+ifeq (0,1)
+ cd $(srcdir) && tar cfj ../gcc-4.1.1-doc.tar.bz2 \
+ $(gfdl_texinfo_files) \
+ $(gfdl_toplevel_texinfo_files) \
+ $(gfdl_manpages)
+endif
+ifeq ($(GFDL_INVARIANT_FREE),yes)
+ ifneq ($(single_package),yes)
+ rm -f $(srcdir)/gcc/doc/*.1
+ rm -f $(srcdir)/gcc/doc/fsf-funding.7
+ rm -f $(srcdir)/gcc/doc/*.info
+ rm -f $(srcdir)/gcc/fortran/*.info
+ rm -f $(srcdir)/libgomp/*.info
+ rm -f $(srcdir)/libquadmath/*.info
+ for i in $(gfdl_texinfo_files); do \
+ if [ -f $(srcdir)/$$i ]; then \
+ cp $(SOURCE_DIR)debian/dummy.texi $(srcdir)/$$i; \
+ else \
+ cp $(SOURCE_DIR)debian/dummy.texi $(srcdir)/$$i; \
+ echo >&2 "$$i does not exist, fix debian/rules.unpack"; \
+ fi; \
+ done
+ ( \
+ echo '@include gcc-vers.texi'; \
+ echo '@macro versionsubtitle'; \
+ echo '@subtitle For @sc{gcc} version @value{version-GCC}'; \
+ echo '@vskip 0pt plus 1filll'; \
+ echo '@end macro'; \
+ ) > $(srcdir)/gcc/doc/include/gcc-common.texi
+ for i in $(gfdl_toplevel_texinfo_files); do \
+ n=$$(basename $$i .texi); \
+ if [ -f $(srcdir)/$$i ]; then \
+ sed "s/@name@/$$n/g" $(SOURCE_DIR)debian/gcc-dummy.texi \
+ > $(srcdir)/$$i; \
+ else \
+ sed "s/@name@/$$n/g" $(SOURCE_DIR)debian/gcc-dummy.texi \
+ > $(srcdir)/$$i; \
+ echo >&2 "$$i does not exist, fix debian/rules.unpack"; \
+ fi; \
+ done
+ for i in $(gfdl_manpages); do \
+ touch $(srcdir)/$$i; \
+ done
+ rm -f $(srcdir)/INSTALL/*.html
+ rm -f $(srcdir)/zlib/contrib/dotzlib/DotZLib.chm
+ endif
+endif
+ echo "$(gcc_tarball) unpacked." > $@
+
+# ---------------------------------------------------------------------------
+ifneq (,$(newlib_tarball))
+$(unpack_stamp)-$(newlib_tarball): $(newlib_tarpath) $(unpack_stamp)-$(gcc_tarball)
+ : # unpack newlib-nvptx tarball
+ mkdir -p $(stampdir)
+ : # rm -rf $(newlib_srcdir)
+ tar -x -f $(newlib_tarpath)
+ echo "$(newlib_tarball) unpacked." > $@
+endif
+
+# ---------------------------------------------------------------------------
+ifneq (,$(binutils_dsc))
+$(unpack_stamp)-$(binutils_dsc): $(binutils_tarpath) $(unpack_stamp)-$(gcc_tarball)
+ : # unpack binutils package
+ mkdir -p $(stampdir)
+ : # rm -rf $(binutils_srcdir)
+ dpkg-source -x $(binutils_dsc)
+
+ : # symlink binutilds toplevel dirs into the gcc tree
+ for d in $(binutils_srcdir)/*; do \
+ [ -d $$d ] || continue; \
+ b=$$(basename $$d); \
+ if [ ! -e $(srcdir)/$$b ]; then \
+ ln -s ../$(binutils_srcdir)/$$b $(srcdir)/$$b; \
+ fi; \
+ done
+
+ echo "$(binutils_dsc) unpacked." > $@
+endif