Added build files and first code stub.
This commit is contained in:
parent
4b337281f2
commit
9ee4e39899
23
.bzrignore
Normal file
23
.bzrignore
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
./aclocal.m4
|
||||||
|
./autom4te.cache
|
||||||
|
./compile
|
||||||
|
./config.guess
|
||||||
|
./config.sub
|
||||||
|
./configure
|
||||||
|
./depcomp
|
||||||
|
./install-sh
|
||||||
|
./ltmain.sh
|
||||||
|
./missing
|
||||||
|
./Makefile.in
|
||||||
|
./config.log
|
||||||
|
./config.status
|
||||||
|
./libtool
|
||||||
|
Makefile
|
||||||
|
./libisofs-5.pc
|
||||||
|
./version.h
|
||||||
|
.deps
|
||||||
|
.dirstamp
|
||||||
|
.libs
|
||||||
|
test/iso
|
||||||
|
*.lo
|
||||||
|
*.la
|
@ -51,6 +51,7 @@
|
|||||||
<pathentry kind="src" path="src"/>
|
<pathentry kind="src" path="src"/>
|
||||||
<pathentry kind="out" path=""/>
|
<pathentry kind="out" path=""/>
|
||||||
<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>
|
<pathentry kind="con" path="org.eclipse.cdt.make.core.DISCOVERED_SCANNER_INFO"/>
|
||||||
|
<pathentry kind="src" path="test"/>
|
||||||
</item>
|
</item>
|
||||||
</data>
|
</data>
|
||||||
</cdtproject>
|
</cdtproject>
|
||||||
|
19
.project
19
.project
@ -7,7 +7,6 @@
|
|||||||
<buildSpec>
|
<buildSpec>
|
||||||
<buildCommand>
|
<buildCommand>
|
||||||
<name>org.eclipse.cdt.make.core.makeBuilder</name>
|
<name>org.eclipse.cdt.make.core.makeBuilder</name>
|
||||||
<triggers>clean,full,incremental,</triggers>
|
|
||||||
<arguments>
|
<arguments>
|
||||||
<dictionary>
|
<dictionary>
|
||||||
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
|
||||||
@ -37,16 +36,16 @@
|
|||||||
<key>org.eclipse.cdt.make.core.build.arguments</key>
|
<key>org.eclipse.cdt.make.core.build.arguments</key>
|
||||||
<value></value>
|
<value></value>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary>
|
|
||||||
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
|
||||||
<value>true</value>
|
|
||||||
</dictionary>
|
|
||||||
<dictionary>
|
<dictionary>
|
||||||
<key>org.eclipse.cdt.make.core.environment</key>
|
<key>org.eclipse.cdt.make.core.environment</key>
|
||||||
<value></value>
|
<value></value>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary>
|
<dictionary>
|
||||||
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
|
||||||
|
<value>true</value>
|
||||||
|
</dictionary>
|
||||||
|
<dictionary>
|
||||||
|
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
||||||
<value>true</value>
|
<value>true</value>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary>
|
<dictionary>
|
||||||
@ -54,13 +53,17 @@
|
|||||||
<value>all</value>
|
<value>all</value>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary>
|
<dictionary>
|
||||||
<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
|
<key>org.eclipse.cdt.make.core.enableFullBuild</key>
|
||||||
<value>false</value>
|
<value>true</value>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary>
|
<dictionary>
|
||||||
<key>org.eclipse.cdt.make.core.build.target.clean</key>
|
<key>org.eclipse.cdt.make.core.build.target.clean</key>
|
||||||
<value>clean</value>
|
<value>clean</value>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
|
<dictionary>
|
||||||
|
<key>org.eclipse.cdt.make.core.build.location</key>
|
||||||
|
<value></value>
|
||||||
|
</dictionary>
|
||||||
<dictionary>
|
<dictionary>
|
||||||
<key>org.eclipse.cdt.core.errorOutputParser</key>
|
<key>org.eclipse.cdt.core.errorOutputParser</key>
|
||||||
<value>org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser;</value>
|
<value>org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser;</value>
|
||||||
|
64
Makefile.am
Normal file
64
Makefile.am
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
pkgconfigdir=$(libdir)/pkgconfig
|
||||||
|
libincludedir=$(includedir)/libisofs
|
||||||
|
|
||||||
|
lib_LTLIBRARIES = src/libisofs.la
|
||||||
|
|
||||||
|
## ========================================================================= ##
|
||||||
|
|
||||||
|
# Build libraries
|
||||||
|
|
||||||
|
src_libisofs_la_LDFLAGS = \
|
||||||
|
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
|
||||||
|
src_libisofs_la_SOURCES = \
|
||||||
|
src/tree.h \
|
||||||
|
src/tree.c \
|
||||||
|
src/image.h
|
||||||
|
libinclude_HEADERS = \
|
||||||
|
src/libisofs.h
|
||||||
|
|
||||||
|
## ========================================================================= ##
|
||||||
|
|
||||||
|
## Build test applications
|
||||||
|
noinst_PROGRAMS = \
|
||||||
|
test/iso
|
||||||
|
|
||||||
|
test_iso_CPPFLAGS = -Isrc
|
||||||
|
test_iso_LDADD = $(src_libisofs_la_OBJECTS) $(THREAD_LIBS)
|
||||||
|
test_iso_SOURCES = test/iso.c
|
||||||
|
|
||||||
|
|
||||||
|
## Build unit test
|
||||||
|
|
||||||
|
#check_PROGRAMS = \
|
||||||
|
# test/test
|
||||||
|
|
||||||
|
#test_test_CPPFLAGS = -Ilibisofs
|
||||||
|
#test_test_LDADD = $(libisofs_libisofs_la_OBJECTS) $(THREAD_LIBS) -lcunit
|
||||||
|
#test_test_LDFLAGS = -L.. -lm
|
||||||
|
|
||||||
|
#test_test_SOURCES = \
|
||||||
|
# test/test_exclude.c
|
||||||
|
|
||||||
|
## ========================================================================= ##
|
||||||
|
|
||||||
|
## Build documentation (You need Doxygen for this to work)
|
||||||
|
## TODO!!
|
||||||
|
|
||||||
|
## ========================================================================= ##
|
||||||
|
|
||||||
|
# Extra things
|
||||||
|
nodist_pkgconfig_DATA = \
|
||||||
|
libisofs-5.pc
|
||||||
|
|
||||||
|
EXTRA_DIST = \
|
||||||
|
libisofs-5.pc.in \
|
||||||
|
version.h.in \
|
||||||
|
README \
|
||||||
|
AUTHORS \
|
||||||
|
COPYRIGHT \
|
||||||
|
COPYING \
|
||||||
|
NEWS \
|
||||||
|
INSTALL \
|
||||||
|
TODO \
|
||||||
|
ChangeLog
|
||||||
|
|
256
README
Normal file
256
README
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
------------------------------------------------------------------------------
|
||||||
|
libburnia-project.org
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
This all is under GPL.
|
||||||
|
(See GPL reference, our clarification and commitment at the end of this text)
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
libburnia-project.org
|
||||||
|
By Mario Danic <mario.danic@gmail.com> and Thomas Schmitt <scdbackup@gmx.net>
|
||||||
|
Copyright (C) 2006-2007 Mario Danic, Thomas Schmitt
|
||||||
|
|
||||||
|
Still containing parts of
|
||||||
|
Libburn. By Derek Foreman <derek@signalmarketing.com> and
|
||||||
|
Ben Jansens <xor@orodu.net>
|
||||||
|
Copyright (C) 2002-2006 Derek Foreman and Ben Jansens
|
||||||
|
These parts are to be replaced by own code of above libburnia-project.org
|
||||||
|
copyright holders and then libburnia-project.org is to be their sole copyright.
|
||||||
|
This is done to achieve the right to issue the clarification and the
|
||||||
|
commitment as written at the end of this text.
|
||||||
|
The rights and merits of the Libburn-copyright holders Derek Foreman and
|
||||||
|
Ben Jansens will be duely respected.
|
||||||
|
|
||||||
|
This libburnia-project.org toplevel README (C) 2006-2007 Thomas Schmitt
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Build and Installation
|
||||||
|
|
||||||
|
Our build system is based on autotools. For preparing the build of a SVN
|
||||||
|
snapshot you will need autotools of at least version 1.7.
|
||||||
|
Check out from SVN by
|
||||||
|
svn co http://svn.libburnia-project.org/libburn/trunk libburn
|
||||||
|
go into directory libburn and apply autotools by
|
||||||
|
./bootstrap
|
||||||
|
|
||||||
|
Alternatively you may unpack a release tarball for which you do not need
|
||||||
|
autotools installed.
|
||||||
|
|
||||||
|
To build a libburnia-project.org subproject it should be sufficient to go
|
||||||
|
into its toplevel directory (here: "libburn") and execute
|
||||||
|
./configure --prefix=/usr
|
||||||
|
make
|
||||||
|
|
||||||
|
To make the libraries accessible for running resp. developing applications
|
||||||
|
make install
|
||||||
|
|
||||||
|
|
||||||
|
The other half of the project, libisofs, is hosted in the libburnia SVN, too:
|
||||||
|
svn co http://svn.libburnia-project.org/libisofs/trunk libisofs
|
||||||
|
See README file there.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
Overview of libburnia-project.org
|
||||||
|
|
||||||
|
libburnia-project.org is an open-source software project for reading, mastering
|
||||||
|
and writing optical discs.
|
||||||
|
For now this means only CD media and all single layer DVD media except DVD+R.
|
||||||
|
|
||||||
|
The project comprises of several more or less interdependent parts which
|
||||||
|
together strive to be a usable foundation for application development.
|
||||||
|
These are libraries, language bindings, and middleware binaries which emulate
|
||||||
|
classical (and valuable) Linux tools.
|
||||||
|
|
||||||
|
Our scope is currently Linux 2.4 and 2.6 only. For ports to other systems
|
||||||
|
we would need : login on a development machine resp. a live OS on CD or DVD,
|
||||||
|
advise from a system person about the equivalent of Linux sg or FreeBSD CAM,
|
||||||
|
volunteers for testing of realistic use cases.
|
||||||
|
|
||||||
|
We have a workable code base for burning CD and most single layer DVD.
|
||||||
|
The burn API is quite comprehensively documented and can be used to build a
|
||||||
|
presentable application.
|
||||||
|
We have a functional binary which emulates parts of cdrecord in order to
|
||||||
|
prove that usability, and in order to allow you to explore libburnia's scope
|
||||||
|
by help of existing cdrecord frontends.
|
||||||
|
|
||||||
|
The project components (list subject to growth, hopefully):
|
||||||
|
|
||||||
|
- libburn is the library by which preformatted data get onto optical media.
|
||||||
|
It uses either /dev/sgN (e.g. on kernel 2.4 with ide-scsi) or
|
||||||
|
/dev/hdX (e.g. on kernel 2.6).
|
||||||
|
libburn is the foundation of our cdrecord emulation. Its code is
|
||||||
|
independent of cdrecord. Its DVD capabilities are learned from
|
||||||
|
studying the code of dvd+rw-tools and MMC-5 specs. No code but only
|
||||||
|
the pure SCSI knowledge has been taken from dvd+rw-tools, though.
|
||||||
|
|
||||||
|
- libisofs is the library to pack up hard disk files and directories into a
|
||||||
|
ISO 9660 disk image. This may then be brought to media via libburn.
|
||||||
|
libisofs is to be the foundation of our upcoming mkisofs emulation.
|
||||||
|
|
||||||
|
- cdrskin is a limited cdrecord compatibility wrapper for libburn.
|
||||||
|
Cdrecord is a powerful GPL'ed burn program included in Joerg
|
||||||
|
Schilling's cdrtools. cdrskin strives to be a second source for
|
||||||
|
the services traditionally provided by cdrecord. Additionally it
|
||||||
|
provides libburn's DVD capabilities, where only -sao is compatible
|
||||||
|
with cdrecord.
|
||||||
|
cdrskin does not contain any bytes copied from cdrecord's sources.
|
||||||
|
Many bytes have been copied from the message output of cdrecord
|
||||||
|
runs, though.
|
||||||
|
See cdrskin/README and man cdrskin/cdrskin.1 for more.
|
||||||
|
|
||||||
|
- test is a collection of application gestures and examples given by the
|
||||||
|
authors of the library features. The main API example for libburn
|
||||||
|
is test/libburner.c .
|
||||||
|
Explore these examples if you look for inspiration.
|
||||||
|
|
||||||
|
We plan to be a responsive upstream. Bear with us. We are still practicing.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
Project history as far as known to me:
|
||||||
|
|
||||||
|
- Founded in 2002 as it seems. See mailing list archives
|
||||||
|
http://lists.freedesktop.org/archives/libburn/
|
||||||
|
The site of this founder team is reachable and offers download of a
|
||||||
|
(somewhat outdated) tarball and from CVS :
|
||||||
|
http://icculus.org/burn/
|
||||||
|
Copyright holders and most probably founders:
|
||||||
|
Derek Foreman and Ben Jansens.
|
||||||
|
|
||||||
|
- I came to using libburn in 2005. Founded the cdrskin project and submitted
|
||||||
|
necessary patches which were accepted or implemented better. Except one
|
||||||
|
remaining patch which prevented cdrskin from using vanilla libburn from CVS.
|
||||||
|
The cdrskin project site is reachable and offers download of the heavily
|
||||||
|
patched (elsewise outdated) tarball under the name cdrskin-0.1.2 :
|
||||||
|
http://scdbackup.sourceforge.net/cdrskin_eng.html
|
||||||
|
It has meanwhile moved to use vanilla libburn.pykix.org , though.
|
||||||
|
Version 0.1.4 constitutes the first release of this kind.
|
||||||
|
|
||||||
|
- In July 2006 our team mate Mario Danic announced a revival of libburn
|
||||||
|
which by about nearly everybody else was perceived as unfriendly fork.
|
||||||
|
Derek Foreman four days later posted a message which expressed his
|
||||||
|
discontent.
|
||||||
|
The situation first caused me to publically regret it and then - after i
|
||||||
|
got the opportunity to move in with cdrskin - gave me true reason to
|
||||||
|
personally apologize to Derek Foreman, Ben Jansens and the contibutors at
|
||||||
|
icculus.org/burn. Posted to both projects:
|
||||||
|
http://lists.freedesktop.org/archives/libburn/2006-August/000446.html
|
||||||
|
http://mailman-mail1.webfaction.com/pipermail/libburn-hackers/2006-August/000024.html
|
||||||
|
|
||||||
|
- Mid August 2006 project cdrskin established a branch office in
|
||||||
|
libburn.pykix.org so that all maintainers of our tools have one single place
|
||||||
|
to get the current (at least slightely) usable coordinated versions of
|
||||||
|
everything.
|
||||||
|
Project cdrskin will live forth independendly for a while but it is committed
|
||||||
|
to stay in sync with libburn.pykix.org (or some successor, if ever).
|
||||||
|
cdrskin is also committed to support icculus.org/burn if the pending fork
|
||||||
|
is made reality by content changes in that project. It will cease to maintain
|
||||||
|
a patched version of icculus.org/burn though. Precondition for a new
|
||||||
|
release of cdrskin on base of icculus.org/burn would be the pending
|
||||||
|
"whitelist patch" therefore.
|
||||||
|
I would rather prefer if both projects find consense and merge, or at least
|
||||||
|
cooperate. I have not given up hope totally, yet.
|
||||||
|
I, personally, will honor any approach.
|
||||||
|
|
||||||
|
- 2nd September 2006 the decision is made to strive for a consolidation of
|
||||||
|
copyright and a commitment to GPL in a reasonable and open minded way.
|
||||||
|
This is to avoid long term problems with code of unknown origin and
|
||||||
|
with finding consense among the not so clearly defined group of copyright
|
||||||
|
claimers and -holders.
|
||||||
|
libisofs is already claimed sole copyright Mario Danic.
|
||||||
|
cdrskin and libburner are already claimed sole copyright Thomas Schmitt.
|
||||||
|
Rewrites of other components will follow and concluded by claiming full
|
||||||
|
copyright within the group of libburn.pykix.org-copyright holders.
|
||||||
|
|
||||||
|
- 16th September 2006 feature freeze for release of libburn-0.2.2 .
|
||||||
|
|
||||||
|
- 20th September 2006 release of libburn-0.2.2 .
|
||||||
|
|
||||||
|
- 26th October 2006 feature freeze for cdrskin-0.2.4 based on libburn-0.2.3 .
|
||||||
|
This version of cdrskin is much more cdrecord compatible in repect
|
||||||
|
to drive addressing and audio features.
|
||||||
|
|
||||||
|
- 30th October 2006 release of cdrskin-0.2.4 .
|
||||||
|
|
||||||
|
- 13th November 2006 splitting releases of libburn+cdrskin from libisofs.
|
||||||
|
|
||||||
|
- 24th November 2006 release of libburn-0.2.6 and cdrskin-0.2.6 . cdrskin has
|
||||||
|
become suitable for unaware frontends as long as they perform only the core
|
||||||
|
of cdrecord use cases (including open-ended input streams, audio, and
|
||||||
|
multi-session).
|
||||||
|
|
||||||
|
- 28th November 2006 the umbrella project which encloses both, libisofs and
|
||||||
|
libburn, is now called libburnia. For the origin of this name, see
|
||||||
|
http://en.wikipedia.org/wiki/Liburnians .
|
||||||
|
|
||||||
|
- 16th January 2007 release of libburn-0.3.0 and cdrskin-0.3.0 . Now the scope
|
||||||
|
is widened to a first class of DVD media: overwriteable single layer types
|
||||||
|
DVD-RAM, DVD+RW, DVD-RW. This is not a cdrecord emulation but rather inspired
|
||||||
|
by dvd+rw-tools' "poor man" writing facility for this class of media.
|
||||||
|
Taking a bow towards Andy Polyakov.
|
||||||
|
|
||||||
|
- 11th February 2007 version 0.3.2 covers sequential DVD-RW and DVD-R with
|
||||||
|
multi-session and with DAO.
|
||||||
|
|
||||||
|
- 12th March 2007 version 0.3.4 supports DVD+R and thus covers all single layer
|
||||||
|
DVD media. Code for double layer DVD+/-R is implemented but awaits a tester
|
||||||
|
yet.
|
||||||
|
|
||||||
|
- 23th April 2007 version 0.3.6 follows the unanimous opinion of Linux kernel
|
||||||
|
people that one should not use /dev/sg on kernel 2.6.
|
||||||
|
|
||||||
|
- 31st July 2007 version 0.3.8 marks the first anniversary of libburn revival.
|
||||||
|
We look back on improved stability, a substantially extended list of media
|
||||||
|
and write modes, and better protection against typical user mishaps.
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
This program is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation. To be exact: version 2 of that License.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
Clarification in my name and in the name of Mario Danic, upcoming copyright
|
||||||
|
holders on toplevel of libburnia. To be fully in effect after the remaining
|
||||||
|
other copyrighted code has been replaced by ours and by copyright-free
|
||||||
|
contributions of our friends:
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
We, the copyright holders, agree on the interpretation that
|
||||||
|
dynamical linking of our libraries constitutes "use of" and
|
||||||
|
not "derivation from" our work in the sense of GPL, provided
|
||||||
|
those libraries are compiled from our unaltered code.
|
||||||
|
|
||||||
|
Thus you may link our libraries dynamically with applications
|
||||||
|
which are not under GPL. You may distribute our libraries and
|
||||||
|
application tools in binary form, if you fulfill the usual
|
||||||
|
condition of GPL to offer a copy of the source code -altered
|
||||||
|
or unaltered- under GPL.
|
||||||
|
|
||||||
|
We ask you politely to use our work in open source spirit
|
||||||
|
and with the due reference to the entire open source community.
|
||||||
|
|
||||||
|
If there should really arise the case where above clarification
|
||||||
|
does not suffice to fulfill a clear and neat request in open source
|
||||||
|
spirit that would otherwise be declined for mere formal reasons,
|
||||||
|
only in that case we will duely consider to issue a special license
|
||||||
|
covering only that special case.
|
||||||
|
It is the open source idea of responsible freedom which will be
|
||||||
|
decisive and you will have to prove that you exhausted all own
|
||||||
|
means to qualify for GPL.
|
||||||
|
|
||||||
|
For now we are firmly committed to maintain one single license: GPL.
|
||||||
|
|
||||||
|
signed: Mario Danic, Thomas Schmitt
|
||||||
|
|
1
TODO
1
TODO
@ -5,6 +5,7 @@ FEATURES
|
|||||||
TODO
|
TODO
|
||||||
====
|
====
|
||||||
|
|
||||||
|
#00001 (tree.h) -> consider adding new timestamps to IsoTreeNode
|
||||||
|
|
||||||
FIXME
|
FIXME
|
||||||
=====
|
=====
|
||||||
|
22
acinclude.m4
Normal file
22
acinclude.m4
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
AC_DEFUN([TARGET_SHIZZLE],
|
||||||
|
[
|
||||||
|
ARCH=""
|
||||||
|
|
||||||
|
AC_MSG_CHECKING([target operating system])
|
||||||
|
|
||||||
|
case $target in
|
||||||
|
*-*-linux*)
|
||||||
|
ARCH=linux
|
||||||
|
LIBBURN_ARCH_LIBS=
|
||||||
|
;;
|
||||||
|
*-*-freebsd*)
|
||||||
|
ARCH=freebsd
|
||||||
|
LIBBURN_ARCH_LIBS=-lcam
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
AC_ERROR([You are attempting to compile for an unsupported platform])
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
AC_MSG_RESULT([$ARCH])
|
||||||
|
])
|
10
bootstrap
Executable file
10
bootstrap
Executable file
@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh -x
|
||||||
|
|
||||||
|
aclocal
|
||||||
|
libtoolize --copy --force
|
||||||
|
autoconf
|
||||||
|
|
||||||
|
# ts A61101 : libburn is not prepared for config.h
|
||||||
|
# autoheader
|
||||||
|
|
||||||
|
automake --foreign --add-missing --copy --include-deps
|
116
configure.ac
Normal file
116
configure.ac
Normal file
@ -0,0 +1,116 @@
|
|||||||
|
AC_INIT([libisofs], [0.5.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])
|
||||||
|
|
||||||
|
dnl A61101 This breaks Linux build (makes 32 bit off_t)
|
||||||
|
dnl http://sourceware.org/autobook/autobook/autobook_96.html says
|
||||||
|
dnl one must include some config.h and this was a pitfall.
|
||||||
|
dnl So why dig the pit at all ?
|
||||||
|
dnl AM_CONFIG_HEADER(config.h)
|
||||||
|
|
||||||
|
dnl Making releases:
|
||||||
|
dnl LIBISOFS_MICRO_VERSION += 1;
|
||||||
|
dnl LIBISOFS_INTERFACE_AGE += 1;
|
||||||
|
dnl LIBISOFS_BINARY_AGE += 1;
|
||||||
|
dnl if any functions have been added, set LIBISOFS_INTERFACE_AGE to 0.
|
||||||
|
dnl if backwards compatibility has been broken,
|
||||||
|
dnl set LIBISOFS_BINARY_AGE and LIBISOFS_INTERFACE_AGE to 0.
|
||||||
|
dnl
|
||||||
|
dnl if MAJOR or MINOR version changes, be sure to change AC_INIT above to match
|
||||||
|
dnl
|
||||||
|
LIBISOFS_MAJOR_VERSION=0
|
||||||
|
LIBISOFS_MINOR_VERSION=5
|
||||||
|
LIBISOFS_MICRO_VERSION=0
|
||||||
|
LIBISOFS_INTERFACE_AGE=0
|
||||||
|
LIBISOFS_BINARY_AGE=0
|
||||||
|
LIBISOFS_VERSION=$LIBISOFS_MAJOR_VERSION.$LIBISOFS_MINOR_VERSION.$LIBISOFS_MICRO_VERSION
|
||||||
|
|
||||||
|
AC_SUBST(LIBISOFS_MAJOR_VERSION)
|
||||||
|
AC_SUBST(LIBISOFS_MINOR_VERSION)
|
||||||
|
AC_SUBST(LIBISOFS_MICRO_VERSION)
|
||||||
|
AC_SUBST(LIBISOFS_INTERFACE_AGE)
|
||||||
|
AC_SUBST(LIBISOFS_BINARY_AGE)
|
||||||
|
AC_SUBST(LIBISOFS_VERSION)
|
||||||
|
|
||||||
|
dnl Libtool versioning
|
||||||
|
LT_RELEASE=$LIBISOFS_MAJOR_VERSION.$LIBISOFS_MINOR_VERSION
|
||||||
|
LT_CURRENT=`expr $LIBISOFS_MICRO_VERSION - $LIBISOFS_INTERFACE_AGE`
|
||||||
|
LT_REVISION=$LIBISOFS_INTERFACE_AGE
|
||||||
|
LT_AGE=`expr $LIBISOFS_BINARY_AGE - $LIBISOFS_INTERFACE_AGE`
|
||||||
|
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
||||||
|
|
||||||
|
AC_SUBST(LT_RELEASE)
|
||||||
|
AC_SUBST(LT_CURRENT)
|
||||||
|
AC_SUBST(LT_REVISION)
|
||||||
|
AC_SUBST(LT_AGE)
|
||||||
|
AC_SUBST(LT_CURRENT_MINUS_AGE)
|
||||||
|
|
||||||
|
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([Libisofs requires largefile support.])
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_PROG_LIBTOOL
|
||||||
|
AC_SUBST(LIBTOOL_DEPS)
|
||||||
|
LIBTOOL="$LIBTOOL --silent"
|
||||||
|
|
||||||
|
AC_PROG_INSTALL
|
||||||
|
|
||||||
|
AC_CHECK_HEADERS()
|
||||||
|
|
||||||
|
AC_CHECK_MEMBER([struct tm.tm_gmtoff],
|
||||||
|
[AC_DEFINE(HAVE_TM_GMTOFF, 1,
|
||||||
|
[Define this if tm structure includes a tm_gmtoff entry.])],
|
||||||
|
,
|
||||||
|
[#include <time.h>])
|
||||||
|
|
||||||
|
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
|
||||||
|
libisofs-5.pc
|
||||||
|
])
|
||||||
|
AC_OUTPUT
|
11
libisofs-5.pc.in
Normal file
11
libisofs-5.pc.in
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
prefix=@prefix@
|
||||||
|
exec_prefix=@exec_prefix@
|
||||||
|
libdir=@libdir@
|
||||||
|
includedir=@includedir@
|
||||||
|
|
||||||
|
Name: libisofs
|
||||||
|
Description: ISO9660 filesystem creation library
|
||||||
|
Version: @VERSION@
|
||||||
|
Requires:
|
||||||
|
Libs: -L${libdir} -lisofs
|
||||||
|
Cflags: -I${includedir}/libisofs
|
17
src/image.h
Normal file
17
src/image.h
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Vreixo Formoso
|
||||||
|
*
|
||||||
|
* This file is part of the libisofs project; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation. See COPYING file for details.
|
||||||
|
*/
|
||||||
|
#ifndef LIBISO_IMAGE_H_
|
||||||
|
#define LIBISO_IMAGE_H_
|
||||||
|
|
||||||
|
|
||||||
|
struct IsoImage {
|
||||||
|
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif /*LIBISO_IMAGE_H_*/
|
19
src/libisofs.h
Normal file
19
src/libisofs.h
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Vreixo Formoso
|
||||||
|
*
|
||||||
|
* This file is part of the libisofs project; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation. See COPYING file for details.
|
||||||
|
*/
|
||||||
|
#ifndef LIBISO_LIBISOFS_H_
|
||||||
|
#define LIBISO_LIBISOFS_H_
|
||||||
|
|
||||||
|
typedef struct Iso_Tree_Node IsoTreeNode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increments the reference counting of the given node.
|
||||||
|
*/
|
||||||
|
void iso_node_ref(IsoTreeNode *node);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /*LIBISO_LIBISOFS_H_*/
|
18
src/tree.c
Normal file
18
src/tree.c
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Vreixo Formoso
|
||||||
|
*
|
||||||
|
* This file is part of the libisofs project; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation. See COPYING file for details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "tree.h"
|
||||||
|
#include "libisofs.h"
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Increments the reference counting of the given node.
|
||||||
|
*/
|
||||||
|
void iso_node_ref(IsoTreeNode *node) {
|
||||||
|
node->refcount++;
|
||||||
|
}
|
80
src/tree.h
Normal file
80
src/tree.h
Normal file
@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Vreixo Formoso
|
||||||
|
*
|
||||||
|
* This file is part of the libisofs project; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation. See COPYING file for details.
|
||||||
|
*/
|
||||||
|
#ifndef LIBISO_TREE_H_
|
||||||
|
#define LIBISO_TREE_H_
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Definitions for the public iso tree
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "libisofs.h"
|
||||||
|
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The type of an IsoTreeNode.
|
||||||
|
*/
|
||||||
|
enum IsoTreeNodeType {
|
||||||
|
LIBISO_DIR,
|
||||||
|
LIBISO_FILE,
|
||||||
|
LIBISO_SYMLINK,
|
||||||
|
LIBISO_SPECIAL,
|
||||||
|
LIBISO_BOOT
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct Iso_Tree_Node {
|
||||||
|
/*
|
||||||
|
* Initilized to 1, originally owned by user, until added to another node.
|
||||||
|
* Then it is owned by the parent node, so the user must take his own ref
|
||||||
|
* if needed. With the exception of the creation functions, none of the
|
||||||
|
* other libisofs functions that return an IsoTreeNode increment its
|
||||||
|
* refcount. This is responsablity of the client, if (s)he needs it.
|
||||||
|
*/
|
||||||
|
int refcount;
|
||||||
|
|
||||||
|
/**< Type of the IsoTreeNode, do not confuse with mode */
|
||||||
|
enum IsoTreeNodeType type;
|
||||||
|
|
||||||
|
char *name; /**< Real name, supossed to be in UTF-8 */
|
||||||
|
|
||||||
|
mode_t mode; /**< protection */
|
||||||
|
uid_t uid; /**< user ID of owner */
|
||||||
|
gid_t gid; /**< group ID of owner */
|
||||||
|
|
||||||
|
/* TODO #00001 : consider adding new timestamps */
|
||||||
|
time_t atime; /**< time of last access */
|
||||||
|
time_t mtime; /**< time of last modification */
|
||||||
|
time_t ctime; /**< time of last status change */
|
||||||
|
|
||||||
|
struct IsoDir *parent; /**< parent node, NULL for root */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Pointers to the doubled linked list of children in a dir.
|
||||||
|
* It is a circular list where the last child points to the first
|
||||||
|
* and viceversa.
|
||||||
|
*/
|
||||||
|
IsoTreeNode *prev;
|
||||||
|
IsoTreeNode *next;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct IsoDir {
|
||||||
|
IsoTreeNode node;
|
||||||
|
|
||||||
|
size_t nchildren; /**< The number of children of this directory. */
|
||||||
|
struct IsoTreeNode *children; /**< list of children. ptr to first child */
|
||||||
|
};
|
||||||
|
|
||||||
|
//void iso_node_unref(IsoTreeNode *node);
|
||||||
|
|
||||||
|
|
||||||
|
#endif /*TREE_H_*/
|
16
test/iso.c
Normal file
16
test/iso.c
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2007 Vreixo Formoso
|
||||||
|
*
|
||||||
|
* This file is part of the libisofs project; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation. See COPYING file for details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "libisofs.h"
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
IsoTreeNode *node;
|
||||||
|
|
||||||
|
}
|
3
version.h.in
Normal file
3
version.h.in
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
#define LIBISOFS_MAJOR_VERSION @LIBISOFS_MAJOR_VERSION@
|
||||||
|
#define LIBISOFS_MINOR_VERSION @LIBISOFS_MINOR_VERSION@
|
||||||
|
#define LIBISOFS_MICRO_VERSION @LIBISOFS_MICRO_VERSION@
|
Loading…
x
Reference in New Issue
Block a user