#!/bin/sh # make_xorriso_standalone.sh # Copyright 2008 - 2009 Thomas Schmitt, scdbackup@gmx.net, GPL # # Not intended for general use in production installations ! # # This is a development tool which expects a special setup of directories. # It is to be executed in a common parent of the directories # nglibisofs-develop libburn-develop libisoburn-develop # # Creates a standalone tree for building xorriso # from the contents of a unified libburnia development tree. # # The ./bootstrap script gets applied and a source tarball # is made. # # From that tree can be build a binary xorriso/xorriso # which at runtime depends only on libc and libpthread. # Execute in $lone_dir : # # ./configure && make # current_dir=$(pwd) lone_dir="$current_dir"/"xorriso-standalone" xorriso_rev=0.4.1 # For unstable uploads: xorriso_pl="" # For stable releases: ## xorriso_pl=".pl00" with_bootstrap_tarball=1 create_dir() { if mkdir "$1" then dummy=dummy else echo "Failed to create : $1" >&2 exit 1 fi } goto_dir() { if cd "$1" then dummy=dummy else echo "Failed to cd $1" >&2 exit 1 fi } copy_files() { if cp "$@" then dummy=dummy else echo "Failed to : cp " "$@" >&2 exit 1 fi } if test -e "$lone_dir" then echo "Already existing : $lone_dir" >&2 exit 1 fi # Top level directory goto_dir "$current_dir"/libisoburn-develop create_dir "$lone_dir" copy_files \ AUTHORS \ CONTRIBUTORS \ COPYRIGHT \ COPYING \ INSTALL \ acinclude.m4 \ aclocal.m4 \ bootstrap \ compile \ config.guess \ config.status \ config.sub \ depcomp \ install-sh \ libtool \ ltmain.sh \ missing \ mkinstalldirs \ version.h.in \ \ "$lone_dir" copy_files xorriso/configure_ac.txt "$lone_dir"/configure.ac copy_files xorriso/xorriso_makefile_am.txt "$lone_dir"/Makefile.am # copy_files xorriso/xorriso_pc_in.txt "$lone_dir"/xorriso.pc.in copy_files xorriso/README "$lone_dir"/README # echo "See end of xorriso/changelog.txt" >"$lone_dir"/TODO # libisoburn create_dir "$lone_dir"/libisoburn copy_files \ libisoburn/*.[ch] \ "$lone_dir"/libisoburn xorriso/convert_man_to_html.sh create_dir "$lone_dir"/xorriso copy_files \ xorriso/xorrisoburn.[ch] \ xorriso/xorriso.[ch1] \ xorriso/xorriso_private.h \ \ xorriso/xorriso_timestamp.h \ \ xorriso/changelog.txt \ xorriso/xorriso_eng.html \ xorriso/man_1_xorriso.html \ "$lone_dir"/xorriso copy_files xorriso/xorriso_buildstamp_none.h \ "$lone_dir"/xorriso/xorriso_buildstamp.h copy_files xorriso/xorriso_buildstamp_none.h \ "$lone_dir"/xorriso/xorriso_buildstamp_none.h create_dir "$lone_dir"/test copy_files \ test/compare_file.c \ "$lone_dir"/test/compare_file.c # nglibisofs create_dir "$lone_dir"/libisofs create_dir "$lone_dir"/libisofs/filters create_dir "$lone_dir"/doc goto_dir "$current_dir"/nglibisofs-develop copy_files libisofs/*.[ch] "$lone_dir"/libisofs copy_files libisofs/filters/*.[ch] "$lone_dir"/libisofs/filters copy_files doc/susp_aaip*.txt "$lone_dir"/doc copy_files doc/zisofs_format.txt "$lone_dir"/doc copy_files COPYRIGHT "$lone_dir"/libisofs # To get a common version.h cat version.h.in >> "$lone_dir"/version.h.in # <<< obsoleted patchings if test 1 = 0 then # Change GNU macro name to POSIX name sed -e 's/FNM_FILE_NAME/FNM_PATHNAME/g' \ "$lone_dir"/libisofs/tree.c # Filter out the semi-illegal TODO comments ( cd "$lone_dir"/libisofs && grep '^[[:space:]]*//' *.[ch] | less ) echo "Is it ok delete all shown //-lines ?" read yesno if test "$yesno" = "y" -o "$yesno" = "1" then for i in "$lone_dir"/libisofs/*.[ch] do # first copy attributes cp "$i" "$lone_dir"/libisofs/tmpfile # now filter away // lines grep -v '^[[:space:]]*//' <"$i" >"$lone_dir"/libisofs/tmpfile && \ mv "$lone_dir"/libisofs/tmpfile "$i" done fi echo "Remaining // lines:" ( cd "$lone_dir"/libisofs && grep '//' *.[ch] ) fi # libburn create_dir "$lone_dir"/libburn goto_dir "$current_dir"/libburn-develop copy_files libburn/*.[ch] "$lone_dir"/libburn copy_files COPYRIGHT "$lone_dir"/libburn # To get a common version.h cat version.h.in >> "$lone_dir"/version.h.in # tarball if test "$with_bootstrap_tarball" = 1 then tarball_dir="$current_dir"/xorriso-"$xorriso_rev" mv "$lone_dir" "$tarball_dir" goto_dir "$tarball_dir" ./bootstrap # Remove unneeded temporary data from ./bootstrap rm -r ./autom4te.cache # Repair non-portable shell code output of ./bootstrap ( cd "$compile_dir" || exit 1 sed -e 's/^for ac_header in$/test -z 1 \&\& for ac_header in dummy/' \ < ./configure > ./configure-repaired if test "$?" = 0 then echo "$0: Empty 'for ac_header in' found in configure." >&2 fi mv ./configure-repaired ./configure chmod a+rx,go-w,u+w ./configure ) cd "$current_dir" tar czf ./xorriso-"$xorriso_rev""$xorriso_pl".tar.gz $(basename "$tarball_dir") ls -l $(pwd)/xorriso-"$xorriso_rev""$xorriso_pl".tar.gz mv "$tarball_dir" "$lone_dir" fi echo "Done" echo "HINT: Now build xorriso/xorriso by:" echo " cd '$lone_dir' && ./configure && make" echo