From 7d627486e3a4806927c50235067176e7634868aa Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Wed, 16 Jan 2008 20:13:18 +0000 Subject: [PATCH] A sketch of a xorriso source standalone release generator --- test/configure_ac.txt | 76 ++++++++++++++ test/make_xorriso_standalone.sh | 136 +++++++++++++++++++++++++ test/xorriso_makefile_am.txt | 174 ++++++++++++++++++++++++++++++++ test/xorriso_pc_in.txt | 12 +++ 4 files changed, 398 insertions(+) create mode 100644 test/configure_ac.txt create mode 100755 test/make_xorriso_standalone.sh create mode 100644 test/xorriso_makefile_am.txt create mode 100644 test/xorriso_pc_in.txt diff --git a/test/configure_ac.txt b/test/configure_ac.txt new file mode 100644 index 00000000..c1598505 --- /dev/null +++ b/test/configure_ac.txt @@ -0,0 +1,76 @@ +AC_INIT([xorriso], [0.1.0], [http://libburnia-project.org]) +AC_PREREQ([2.50]) +dnl AC_CONFIG_HEADER([config.h]) + +AC_CANONICAL_HOST +AC_CANONICAL_TARGET + +AM_INIT_AUTOMAKE([subdir-objects]) + +# A dummy demanded by libburn sources, but unused by xorriso +BURN_MAJOR_VERSION=0 +BURN_MINOR_VERSION=0 +BURN_MICRO_VERSION=0 +AC_SUBST(BURN_MAJOR_VERSION) +AC_SUBST(BURN_MINOR_VERSION) +AC_SUBST(BURN_MICRO_VERSION) + + +AC_PREFIX_DEFAULT([/usr/local]) +test "$prefix" = "NONE" && prefix=$ac_default_prefix + +AM_MAINTAINER_MODE + +AM_PROG_CC_C_O +AC_C_CONST +AC_C_INLINE +AC_C_BIGENDIAN + +dnl Large file support +AC_SYS_LARGEFILE +AC_FUNC_FSEEKO +AC_CHECK_FUNC([fseeko]) +if test ! $ac_cv_func_fseeko; then + AC_ERROR([Libburn requires largefile support.]) +fi + +AC_PROG_LIBTOOL +AC_SUBST(LIBTOOL_DEPS) +LIBTOOL="$LIBTOOL --silent" + +AC_PROG_INSTALL + +AC_CHECK_HEADERS() + +THREAD_LIBS=-lpthread +AC_SUBST(THREAD_LIBS) + +TARGET_SHIZZLE +AC_SUBST(ARCH) +AC_SUBST(LIBBURN_ARCH_LIBS) + +dnl Add compiler-specific flags + +dnl See if the user wants aggressive optimizations of the code +AC_ARG_ENABLE(debug, +[ --enable-debug Disable aggressive optimizations [default=yes]], + , enable_debug=yes) +if test x$enable_debug != xyes; then + if test x$GCC = xyes; then + CFLAGS="$CFLAGS -O3" + CFLAGS="$CFLAGS -fexpensive-optimizations" + fi + CFLAGS="$CFLAGS -DNDEBUG" +else + if test x$GCC = xyes; then + CFLAGS="$CFLAGS -g -pedantic -Wall" + fi + CFLAGS="$CFLAGS -DDEBUG" +fi + +AC_CONFIG_FILES([ + Makefile + version.h + xorriso.pc + ]) +AC_OUTPUT diff --git a/test/make_xorriso_standalone.sh b/test/make_xorriso_standalone.sh new file mode 100755 index 00000000..c54b799e --- /dev/null +++ b/test/make_xorriso_standalone.sh @@ -0,0 +1,136 @@ +#!/bin/sh + +# +# Copyright 2008 Thomas Schmitt, scdbackup@gmx.net, GPL +# +# Creates a standalone tree for building xorriso +# from the contents of a unified libburnia development tree. +# To be executed in the parent of the *-develop directories. +# +# From that tree can be build a binary xorriso/xorriso +# which at runtime depends only on libc and libpthread. +# Execute in $lone_dir : +# +# ./bootstrap && ./configure && make +# + +current_dir=$(pwd) +lone_dir="$current_dir"/"xorriso-standalone" + +create_dir() { + if mkdir "$1" + then + dummy=dummy + else + echo "Failed to create : $r1o" >&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 \ + TODO \ + 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 \ + test/configure_ac.txt \ + "$lone_dir"/configure.ac + +copy_files \ + test/xorriso_makefile_am.txt \ + "$lone_dir"/Makefile.am + +copy_files \ + test/xorriso_pc_in.txt \ + "$lone_dir"/xorriso.pc.in + + +# libisoburn + +create_dir "$lone_dir"/libisoburn +copy_files \ + ng_src/*.[ch] \ + "$lone_dir"/libisoburn + +create_dir "$lone_dir"/xorriso +copy_files \ + test/compile_xorriso.sh \ + test/ng_xorrisoburn.[ch] \ + test/xorriso.[ch1] \ + test/xorriso_private.h \ + test/xorriso_timestamp.h \ + "$lone_dir"/xorriso + +mv "$lone_dir"/xorriso/ng_xorrisoburn.h "$lone_dir"/xorriso/xorrisoburn.h +mv "$lone_dir"/xorriso/ng_xorrisoburn.c "$lone_dir"/xorriso/xorrisoburn.c + +# >>> patch compile_xorriso.sh for standalone + + +# nglibisofs + +create_dir "$lone_dir"/libisofs +goto_dir "$current_dir"/nglibisofs-develop +copy_files src/*.[ch] "$lone_dir"/libisofs + + +# libburn + +create_dir "$lone_dir"/libburn +goto_dir "$current_dir"/libburn-develop +copy_files libburn/*.[ch] "$lone_dir"/libburn + + +echo "Done" +echo "HINT: Now build xorriso/xorriso by:" +echo " cd '$lone_dir' && ./bootstrap && ./configure && make" +echo diff --git a/test/xorriso_makefile_am.txt b/test/xorriso_makefile_am.txt new file mode 100644 index 00000000..d574f334 --- /dev/null +++ b/test/xorriso_makefile_am.txt @@ -0,0 +1,174 @@ +pkgconfigdir=$(libdir)/pkgconfig +libincludedir= + +lib_LTLIBRARIES = + +## ========================================================================= ## + +libinclude_HEADERS = + +## ========================================================================= ## + +noinst_PROGRAMS = + +bin_PROGRAMS = \ + xorriso/xorriso + +xorriso_xorriso_CPPFLAGS = -I./libburn -I./libisofs -I./libisoburn -I./xorriso + +# No readline in the vanilla version because the necessary headers +# are in a separate readline-development package. +xorriso_xorriso_CFLAGS = -DXorriso_standalonE -DXorriso_with_maiN -DXorriso_with_regeX + +xorriso_xorriso_LDADD = $(THREAD_LIBS) + +xorriso_xorriso_SOURCES = \ + \ + xorriso.h \ + xorriso_private.h \ + xorriso/xorriso.c \ + xorrisoburn.h \ + xorriso/xorrisoburn.c \ + xorriso/xorriso_timestamp.h \ + \ + libisoburn/libisoburn.h \ + libisoburn/isoburn.h \ + libisoburn/isoburn.c \ + libisoburn/isofs_wrap.c \ + libisoburn/burn_wrap.c \ + libisoburn/data_source.c \ + \ + libisofs/builder.h \ + libisofs/builder.c \ + libisofs/error.h \ + libisofs/node.h \ + libisofs/node.c \ + libisofs/tree.h \ + libisofs/tree.c \ + libisofs/image.h \ + libisofs/image.c \ + libisofs/fsource.h \ + libisofs/fsource.c \ + libisofs/fs_local.c \ + libisofs/fs_image.h \ + libisofs/fs_image.c \ + libisofs/messages.h \ + libisofs/messages.c \ + libisofs/libiso_msgs.h \ + libisofs/libiso_msgs.c \ + libisofs/stream.h \ + libisofs/stream.c \ + libisofs/util.h \ + libisofs/util.c \ + libisofs/util_rbtree.c \ + libisofs/util_htable.c \ + libisofs/filesrc.h \ + libisofs/filesrc.c \ + libisofs/ecma119.h \ + libisofs/ecma119.c \ + libisofs/ecma119_tree.h \ + libisofs/ecma119_tree.c \ + libisofs/writer.h \ + libisofs/buffer.c \ + libisofs/rockridge.h \ + libisofs/rockridge.c \ + libisofs/rockridge_read.c \ + libisofs/joliet.h \ + libisofs/joliet.c \ + libisofs/eltorito.h \ + libisofs/eltorito.c \ + libisofs/data_source.c \ + \ + libburn/async.c \ + libburn/async.h \ + libburn/back_hacks.h \ + libburn/cleanup.c \ + libburn/cleanup.h \ + libburn/crc.c \ + libburn/crc.h \ + libburn/debug.c \ + libburn/debug.h \ + libburn/drive.c \ + libburn/drive.h \ + libburn/error.h \ + libburn/file.c \ + libburn/file.h \ + libburn/init.c \ + libburn/init.h \ + libburn/lec.c \ + libburn/lec.h \ + libburn/libburn.h \ + libburn/libdax_audioxtr.h \ + libburn/libdax_audioxtr.c \ + libburn/libdax_msgs.h \ + libburn/libdax_msgs.c \ + libburn/mmc.c \ + libburn/mmc.h \ + libburn/null.c \ + libburn/null.h \ + libburn/options.c \ + libburn/options.h \ + libburn/os.h \ + libburn/read.c \ + libburn/read.h \ + libburn/sbc.c \ + libburn/sbc.h \ + libburn/sector.c \ + libburn/sector.h \ + libburn/sg.c \ + libburn/sg.h \ + libburn/source.h \ + libburn/source.c \ + libburn/spc.c \ + libburn/spc.h \ + libburn/structure.c \ + libburn/structure.h \ + libburn/toc.c \ + libburn/toc.h \ + libburn/transport.h \ + libburn/util.c \ + libburn/util.h \ + libburn/write.c \ + libburn/write.h \ + \ + version.h + + +## ========================================================================= ## + +# Indent source files +indent_files = + + +indent: $(indent_files) + indent -bad -bap -nbbb -nbbo -nbc -bli0 -br -bls \ + -cdw -ce -cli0 -ncs -nbfda -i8 -l79 -lc79 \ + -lp -saf -sai -nprs -npsl -saw -sob -ss -ut \ + -sbi0 -nsc -ts8 -npcs -ncdb -fca \ + $^ + +.PHONY: indent + +## ========================================================================= ## + +# Extra things +nodist_pkgconfig_DATA = \ + xorriso.pc + +man_MANS = xorriso/xorriso.1 + +EXTRA_DIST = \ + xorriso.pc.in \ + version.h.in \ + README \ + AUTHORS \ + CONTRIBUTORS \ + COPYRIGHT \ + COPYING \ + NEWS \ + ChangeLog \ + INSTALL \ + xorriso/compile_xorriso.sh \ + $(man_MANS) + + diff --git a/test/xorriso_pc_in.txt b/test/xorriso_pc_in.txt new file mode 100644 index 00000000..5e35e873 --- /dev/null +++ b/test/xorriso_pc_in.txt @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: xorriso +Description: ISO 9660 filesystem image manipulator +Version: @VERSION@ +Requires: +Libs: -L${libdir} -lpthread +Cflags: +