Merge branch 'master' into package-management

Additional changes:
* Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
  needed by packagefs.
* BuildFeatures: Add a build feature "gcc2" to allow for easier checks.
* Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter
  is not needed and prevents building for the build platform.
* zlib/zutil.h: Fix gcc 2 build. We really should use the external
  package instead.

Conflicts:
	.gitignore
	build/jam/BuildSetup
	build/jam/FileRules
	build/jam/FloppyBootImage
	build/jam/HaikuImage
	build/jam/ImageRules
	build/jam/KernelRules
	build/jam/NetBootArchive
	build/jam/OptionalBuildFeatures
	build/jam/OptionalLibPackages
	build/jam/OptionalPackageDependencies
	build/jam/OptionalPackages
	build/scripts/build_haiku_image
	configure
	data/bin/installoptionalpackage
	data/system/boot/Bootscript
	headers/os/app/Message.h
	headers/os/package/PackageInfo.h
	headers/os/package/PackageInfoAttributes.h
	headers/os/package/PackageInfoSet.h
	headers/os/package/PackageRoster.h
	headers/os/package/PackageVersion.h
	headers/os/package/hpkg/PackageInfoAttributeValue.h
	headers/os/storage/FindDirectory.h
	headers/os/storage/Node.h
	headers/os/support/StringList.h
	headers/private/system/directories.h
	src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
	src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp
	src/add-ons/kernel/file_systems/packagefs/Jamfile
	src/add-ons/kernel/file_systems/packagefs/Package.cpp
	src/add-ons/kernel/file_systems/packagefs/Package.h
	src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageDomain.h
	src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h
	src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h
	src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageNode.h
	src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp
	src/add-ons/kernel/file_systems/packagefs/Version.cpp
	src/add-ons/kernel/file_systems/packagefs/Version.h
	src/add-ons/kernel/file_systems/packagefs/Volume.cpp
	src/add-ons/kernel/file_systems/packagefs/Volume.h
	src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp
	src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c
	src/apps/deskbar/BarApp.cpp
	src/apps/deskbar/BarMenuBar.cpp
	src/apps/deskbar/BarMenuBar.h
	src/apps/deskbar/BarView.cpp
	src/apps/deskbar/BarView.h
	src/apps/deskbar/BarWindow.cpp
	src/apps/deskbar/BarWindow.h
	src/apps/deskbar/DeskbarMenu.cpp
	src/apps/deskbar/DeskbarMenu.h
	src/apps/deskbar/DeskbarUtils.cpp
	src/apps/deskbar/DeskbarUtils.h
	src/apps/deskbar/ExpandoMenuBar.cpp
	src/apps/deskbar/ExpandoMenuBar.h
	src/apps/deskbar/TeamMenu.cpp
	src/apps/processcontroller/ProcessController.cpp
	src/apps/remotedesktop/RemoteDesktop.cpp
	src/bin/bash/config-top.h
	src/bin/finddir.c
	src/bin/package/Jamfile
	src/bin/package/command_add.cpp
	src/bin/package/command_create.cpp
	src/bin/package/command_list.cpp
	src/bin/package_repo/command_list.cpp
	src/bin/pkgman/command_refresh.cpp
	src/build/libbe/support/Jamfile
	src/build/libpackage/Jamfile
	src/build/libroot/Jamfile
	src/build/libroot/fs.cpp
	src/build/libroot/remapped_functions.h
	src/kits/locale/MutableLocaleRoster.cpp
	src/kits/opengl/GLRendererRoster.cpp
	src/kits/package/PackageInfo.cpp
	src/kits/package/PackageInfoSet.cpp
	src/kits/package/PackageRoster.cpp
	src/kits/package/PackageVersion.cpp
	src/kits/package/RepositoryCache.cpp
	src/kits/package/hpkg/PackageWriterImpl.cpp
	src/kits/package/hpkg/ReaderImplBase.cpp
	src/kits/package/hpkg/WriterImplBase.cpp
	src/kits/print/PrintTransport.cpp
	src/kits/print/Printer.cpp
	src/kits/screensaver/ScreenSaverRunner.cpp
	src/kits/support/StringList.cpp
	src/kits/tracker/ContainerWindow.cpp
	src/kits/tracker/DeskWindow.cpp
	src/kits/tracker/PoseView.cpp
	src/libs/print/libprint/Transport.cpp
	src/preferences/printers/AddPrinterDialog.cpp
	src/preferences/screensaver/ScreenSaverWindow.cpp
	src/servers/debug/DebugServer.cpp
	src/servers/input/AddOnManager.cpp
	src/servers/media_addon/MediaAddonServer.cpp
	src/system/boot/Jamfile
	src/system/boot/loader/Jamfile
	src/system/boot/loader/loader.cpp
	src/system/boot/loader/vfs.cpp
	src/system/kernel/fs/vfs.cpp
	src/system/kernel/fs/vfs_boot.cpp
	src/system/libroot/os/find_directory.cpp
	src/system/runtime_loader/runtime_loader.cpp
	src/tools/package/Jamfile
This commit is contained in:
Ingo Weinhold
2013-05-05 15:03:26 +02:00
15096 changed files with 647420 additions and 1619850 deletions
+4
View File
@@ -2,3 +2,7 @@ generated*
build/jam/UserBuildConfig
build/user_config_headers
# ignore KDE backup files ending with a ~
*~
# Vim swp files
.*.swp
+458
View File
@@ -0,0 +1,458 @@
diff -rupN Mesa-7.8.2/bin/mklib Mesa-7.8.2-haiku/bin/mklib
--- Mesa-7.8.2/bin/mklib 2010-06-15 17:43:41.034340864 +0000
+++ Mesa-7.8.2-haiku/bin/mklib 2012-01-17 09:57:07.461373440 +0000
@@ -260,7 +260,7 @@ if [ $STATIC = 1 ]; then
NEWOBJECTS=""
for OBJ in $OBJECTS ; do
case $OBJ in
- -Wl,*)
+ -Wl,*|-L*|-l*)
echo "mklib: warning: ignoring $OBJ for static library"
;;
*)
@@ -307,7 +307,7 @@ fi
#
case $ARCH in
- 'Linux' | 'OpenBSD' | 'DragonFly' | 'GNU' | GNU/*)
+ 'Linux' | 'OpenBSD' | 'DragonFly' | 'GNU' | GNU/* | 'NetBSD')
# we assume gcc
if [ "x$LINK" = "x" ] ; then
@@ -494,13 +494,16 @@ case $ARCH in
OPTS="${OPTS} -Wl,-Mmapfile.scope"
fi
- # Check if objects are SPARC v9
+ # Check if objects are 64-bit
# file says: ELF 64-bit MSB relocatable SPARCV9 Version 1
set ${OBJECTS}
if [ ${LINK} = "cc" -o ${LINK} = "CC" ] ; then
- SPARCV9=`file $1 | grep SPARCV9`
- if [ "${SPARCV9}" ] ; then
- OPTS="${OPTS} -xarch=v9"
+ ABI64=`file $1 | grep "ELF 64-bit"`
+ if [ "${ABI64}" ] ; then
+ case `uname -p` in
+ sparc) OPTS="${OPTS} -xarch=v9" ;;
+ i386) OPTS="${OPTS} -xarch=amd64" ;;
+ esac
fi
fi
if [ "${ALTOPTS}" ] ; then
@@ -571,20 +574,6 @@ case $ARCH in
fi
;;
- 'NetBSD')
- if [ $STATIC = 1 ] ; then
- LIBNAME="lib${LIBNAME}_pic.a"
- echo "mklib: Making NetBSD PIC static library: " ${LIBNAME}
- FINAL_LIBS=`make_ar_static_lib cq 1 ${LIBNAME} ${OBJECTS}`
- else
- LIBNAME="lib${LIBNAME}.so.${MAJOR}.${MINOR}"
- echo "mklib: Making NetBSD PIC shared library: " ${LIBNAME}
- rm -f ${LIBNAME}
- ld -x -Bshareable -Bforcearchive -o ${LIBNAME} ${OBJECTS}
- FINAL_LIBS=${LIBNAME}
- fi
- ;;
-
'IRIX' | 'IRIX64')
if [ $STATIC = 1 ] ; then
LIBNAME="lib${LIBNAME}.a"
@@ -778,9 +767,8 @@ case $ARCH in
OPTS="${OPTS} -exported_symbols_list ${EXPORTS}"
fi
- LINKNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
- LINKNAME2="lib${LIBNAME}.${LIBSUFFIX}"
- LIBNAME="lib${LIBNAME}.${MAJOR}.${MINOR}.${LIBSUFFIX}"
+ LINKNAME="lib${LIBNAME}.${LIBSUFFIX}"
+ LIBNAME="lib${LIBNAME}.${MAJOR}.${LIBSUFFIX}"
# examine first object to determine ABI
set ${OBJECTS}
@@ -793,9 +781,6 @@ case $ARCH in
OPTS=${ALTOPTS}
fi
- # XXX can we always add -isysroot /Developer/SDKs/MacOSX10.4u.sdk
- # to OPTS here?
-
# determine linker
if [ $CPLUSPLUS = 1 ] ; then
LINK="g++"
@@ -807,8 +792,7 @@ case $ARCH in
${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
ln -s ${LIBNAME} ${LINKNAME}
- ln -s ${LIBNAME} ${LINKNAME2}
- FINAL_LIBS="${LIBNAME} ${LINKNAME} ${LINKNAME2}"
+ FINAL_LIBS="${LIBNAME} ${LINKNAME}"
fi
;;
@@ -818,22 +802,6 @@ case $ARCH in
FINAL_LIBS=`make_ar_static_lib -ru 0 ${LIBNAME} ${OBJECTS}`
;;
- 'BeOS')
- if [ $STATIC = 1 ] ; then
- LIBNAME="lib${LIBNAME}.a"
- echo "mklib: Making BeOS static library: " ${LIBNAME}
- FINAL_LIBS=`make_ar_static_lib -cru 0 ${LIBNAME} ${OBJECTS}`
- else
- LIBNAME="lib${LIBNAME}.so"
- echo "mklib: Making BeOS shared library: " ${LIBNAME}
- gcc -nostart -Xlinker "-soname=${LIBNAME}" -L/Be/develop/lib/x86 -lbe ${DEPS} ${OBJECTS} -o "${LIBNAME}"
- mimeset -f "${LIBNAME}"
- # XXX remove the Mesa3D stuff here since mklib isn't mesa-specific.
- setversion "${LIBNAME}" -app ${MAJOR} ${MINOR} ${PATCH} -short "Powered by Mesa3D!" -long "Powered by Mesa3D!"
- fi
- FINAL_LIBS=${LIBNAME}
- ;;
-
'QNX')
LIBNAME="lib${LIBNAME}.a"
echo "mklib: Making QNX library: " ${LIBNAME}
@@ -927,6 +895,16 @@ case $ARCH in
CYGWIN*)
# GCC-based environment
+
+ if [ "x$LINK" = "x" ] ; then
+ # -linker was not specified so set default link command now
+ if [ $CPLUSPLUS = 1 ] ; then
+ LINK=g++
+ else
+ LINK=gcc
+ fi
+ fi
+
if [ $NOPREFIX = 1 ] ; then
# No "lib" or ".so" part
echo "mklib: Making CYGWIN shared library: " ${LIBNAME}
@@ -935,7 +913,7 @@ case $ARCH in
OPTS=${ALTOPTS}
fi
rm -f ${LIBNAME}
- ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS}
+ ${LINK} ${OPTS} ${LDFLAGS} -o ${LIBNAME} ${OBJECTS} ${DEPS} || exit $?
FINAL_LIBS=${LIBNAME}
else
CYGNAME="cyg${LIBNAME}" # prefix with "cyg"
@@ -943,7 +921,7 @@ case $ARCH in
if [ $STATIC = 1 ] ; then
LIBNAME=${LIBNAME}.a
- echo "mklib: Making" $ARCH "static library: " ${LIBNAME}
+ echo "mklib: Making CYGWIN static library: " ${LIBNAME}
OPTS="-ru"
if [ "${ALTOPTS}" ] ; then
OPTS=${ALTOPTS}
@@ -961,13 +939,7 @@ case $ARCH in
if [ "${ALTOPTS}" ] ; then
OPTS=${ALTOPTS}
fi
- echo "mklib: Making" $ARCH "shared library: " ${CYGNAME}-${MAJOR}.dll
-
- if [ $CPLUSPLUS = 1 ] ; then
- LINK="g++"
- else
- LINK="gcc"
- fi
+ echo "mklib: Making CYGWIN shared library: " ${CYGNAME}-${MAJOR}.dll
# rm any old libs
rm -f ${CYGNAME}-${MAJOR}.dll
@@ -976,12 +948,7 @@ case $ARCH in
rm -f ${LIBNAME}.a
# make lib
- ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS}
- # make build fail if link failed
- es=$?
- if [ "$es" -ne "0" ]; then
- exit $es
- fi
+ ${LINK} ${OPTS} ${LDFLAGS} -o ${CYGNAME}-${MAJOR}.dll ${OBJECTS} ${DEPS} || exit $?
# make usual symlinks
ln -s ${LIBNAME}-${MAJOR}.dll.a ${LIBNAME}.dll.a
# finish up
@@ -992,6 +959,43 @@ case $ARCH in
fi
;;
+ 'Haiku')
+ if [ $STATIC = 1 ] ; then
+ LIBNAME="lib${LIBNAME}.a"
+ if [ "x$LINK" = "x" ] ; then
+ # -linker was not specified so set default link command now
+ if [ $CPLUSPLUS = 1 ] ; then
+ LINK=g++
+ else
+ LINK=gcc
+ fi
+ fi
+
+ OPTS="-ru"
+ if [ "${ALTOPTS}" ] ; then
+ OPTS=${ALTOPTS}
+ fi
+
+ echo "mklib: Making static library for Haiku: " ${LIBNAME}
+
+ # expand .a into .o files
+ NEW_OBJECTS=`expand_archives ${LIBNAME}.obj $OBJECTS`
+
+ # make static lib
+ FINAL_LIBS=`make_ar_static_lib ${OPTS} 1 ${LIBNAME} ${NEW_OBJECTS}`
+
+ # remove temporary extracted .o files
+ rm -rf ${LIBNAME}.obj
+ else
+ LIBNAME="lib${LIBNAME}.so" # prefix with "lib", suffix with ".so"
+ OPTS="-shared"
+
+ echo "mklib: Making shared library for Haiku: " ${LIBNAME}
+ ${LINK} ${OPTS} ${LDFLAGS} ${OBJECTS} ${DEPS} -o ${LIBNAME}
+ FINAL_LIBS="${LIBNAME}"
+ fi
+ ;;
+
'example')
# If you're adding support for a new architecture, you can
# start with this:
@@ -1021,4 +1025,9 @@ if [ ${INSTALLDIR} != "." ] ; then
echo "mklib: Installing" ${FINAL_LIBS} "in" ${INSTALLDIR}
test -d ${INSTALLDIR} || mkdir -p ${INSTALLDIR}
mv ${FINAL_LIBS} ${INSTALLDIR}/
+
+ if [ "x${FINAL_BINS}" != "x" ] ; then
+ echo "mklib: Installing" ${FINAL_BINS} "in" ${INSTALLDIR}
+ mv ${FINAL_BINS} ${INSTALLDIR}/
+ fi
fi
diff -rupN Mesa-7.8.2/configs/current Mesa-7.8.2-haiku/configs/current
--- Mesa-7.8.2/configs/current 1970-01-01 00:00:00.000000000 +0000
+++ Mesa-7.8.2-haiku/configs/current 2012-01-17 11:03:50.553910272 +0000
@@ -0,0 +1,63 @@
+# Configuration for Haiku
+# Written by Alexander von Gluck IV
+#
+# Based on the BeOS config
+# written by Philippe Houdoin
+
+include $(TOP)/configs/default
+
+CONFIG_NAME = haiku
+
+# Haiku settings
+
+DEFINES = \
+ -DBEOS_THREADS \
+ -DGNU_ASSEMBLER \
+ -DUSE_X86_ASM \
+ -DUSE_MMX_ASM \
+ -DUSE_3DNOW_ASM \
+ -DUSE_SSE_ASM
+
+MESA_ASM_SOURCES = $(X86_SOURCES)
+GLAPI_ASM_SOURCES = $(X86_API)
+
+CC = gcc
+CXX = g++
+LD = gcc
+
+CFLAGS = -Wall -Wno-multichar $(DEFINES)
+CXXFLAGS = $(CFLAGS)
+LDFLAGS +=
+
+# Work around aliasing bugs - developers should comment this out
+CFLAGS += -fno-strict-aliasing
+#CFLAGS += -std=c99
+CXXFLAGS += -fno-strict-aliasing
+
+# No makedepend on Haiku, this will solve it
+MKDEP = true
+
+# Debug defines
+ifdef DEBUG
+ CFLAGS += -g -O0
+ LDFLAGS += -g
+ DEFINES += -DDEBUG
+else
+ CFLAGS += -O3
+endif
+
+# GLU settings
+GLU_LIB_NAME = libglu.a
+GLU_LIB = glu
+
+# Directories
+SRC_DIRS = glsl mesa/x86 mapi/glapi mesa glu
+GLU_DIRS = sgi
+DRIVER_DIRS =
+PROGRAM_DIRS =
+
+# Library/program dependencies
+GL_LIB_DEPS =
+OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
+GLU_LIB_DEPS =
+APP_LIB_DEPS = -lbe -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLUT_LIB)
diff -rupN Mesa-7.8.2/configs/haiku Mesa-7.8.2-haiku/configs/haiku
--- Mesa-7.8.2/configs/haiku 1970-01-01 00:00:00.000000000 +0000
+++ Mesa-7.8.2-haiku/configs/haiku 2012-01-17 11:03:50.553910272 +0000
@@ -0,0 +1,63 @@
+# Configuration for Haiku
+# Written by Alexander von Gluck IV
+#
+# Based on the BeOS config
+# written by Philippe Houdoin
+
+include $(TOP)/configs/default
+
+CONFIG_NAME = haiku
+
+# Haiku settings
+
+DEFINES = \
+ -DBEOS_THREADS \
+ -DGNU_ASSEMBLER \
+ -DUSE_X86_ASM \
+ -DUSE_MMX_ASM \
+ -DUSE_3DNOW_ASM \
+ -DUSE_SSE_ASM
+
+MESA_ASM_SOURCES = $(X86_SOURCES)
+GLAPI_ASM_SOURCES = $(X86_API)
+
+CC = gcc
+CXX = g++
+LD = gcc
+
+CFLAGS = -Wall -Wno-multichar $(DEFINES)
+CXXFLAGS = $(CFLAGS)
+LDFLAGS +=
+
+# Work around aliasing bugs - developers should comment this out
+CFLAGS += -fno-strict-aliasing
+#CFLAGS += -std=c99
+CXXFLAGS += -fno-strict-aliasing
+
+# No makedepend on Haiku, this will solve it
+MKDEP = true
+
+# Debug defines
+ifdef DEBUG
+ CFLAGS += -g -O0
+ LDFLAGS += -g
+ DEFINES += -DDEBUG
+else
+ CFLAGS += -O3
+endif
+
+# GLU settings
+GLU_LIB_NAME = libglu.a
+GLU_LIB = glu
+
+# Directories
+SRC_DIRS = glsl mesa/x86 mapi/glapi mesa glu
+GLU_DIRS = sgi
+DRIVER_DIRS =
+PROGRAM_DIRS =
+
+# Library/program dependencies
+GL_LIB_DEPS =
+OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
+GLU_LIB_DEPS =
+APP_LIB_DEPS = -lbe -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLUT_LIB)
Binary files Mesa-7.8.2/lib/libglu.a and Mesa-7.8.2-haiku/lib/libglu.a differ
diff -rupN Mesa-7.8.2/Makefile Mesa-7.8.2-haiku/Makefile
--- Mesa-7.8.2/Makefile 2010-06-16 21:22:57.033030144 +0000
+++ Mesa-7.8.2-haiku/Makefile 2012-01-17 09:56:45.423886848 +0000
@@ -84,6 +84,7 @@ freebsd \
freebsd-dri \
freebsd-dri-amd64 \
freebsd-dri-x86 \
+haiku \
hpux10 \
hpux10-gcc \
hpux10-static \
diff -rupN Mesa-7.8.2/src/gallium/auxiliary/draw/draw_private.h Mesa-7.8.2-haiku/src/gallium/auxiliary/draw/draw_private.h
--- Mesa-7.8.2/src/gallium/auxiliary/draw/draw_private.h 2010-06-15 17:43:42.046137344 +0000
+++ Mesa-7.8.2-haiku/src/gallium/auxiliary/draw/draw_private.h 2012-01-17 09:59:43.815005696 +0000
@@ -70,7 +70,7 @@ struct vertex_header {
/* This will probably become float (*data)[4] soon:
*/
- float data[][4];
+ float (*data)[4];
};
/* NOTE: It should match vertex_id size above */
diff -rupN Mesa-7.8.2/src/gallium/auxiliary/os/os_thread.h Mesa-7.8.2-haiku/src/gallium/auxiliary/os/os_thread.h
--- Mesa-7.8.2/src/gallium/auxiliary/os/os_thread.h 2010-06-15 17:43:42.056098816 +0000
+++ Mesa-7.8.2-haiku/src/gallium/auxiliary/os/os_thread.h 2012-01-17 10:00:38.613154816 +0000
@@ -257,7 +257,7 @@ typedef unsigned pipe_condvar;
* pipe_barrier
*/
-#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU)
+#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS)
typedef pthread_barrier_t pipe_barrier;
diff -rupN Mesa-7.8.2/src/gallium/auxiliary/util/u_debug.h Mesa-7.8.2-haiku/src/gallium/auxiliary/util/u_debug.h
--- Mesa-7.8.2/src/gallium/auxiliary/util/u_debug.h 2010-06-15 17:43:42.066584576 +0000
+++ Mesa-7.8.2-haiku/src/gallium/auxiliary/util/u_debug.h 2012-01-17 10:02:01.553385984 +0000
@@ -91,8 +91,10 @@ debug_printf(const char *format, ...)
(void) format; /* silence warning */
#endif
}
-
-#endif /* !PIPE_OS_HAIKU */
+#else /* is Haiku */
+/* Haiku provides debug_printf in libroot with OS.h */
+#include <OS.h>
+#endif
/*
* ... isn't portable so we need to pass arguments in parentheses.
diff -rupN Mesa-7.8.2/src/glu/sgi/Makefile Mesa-7.8.2-haiku/src/glu/sgi/Makefile
--- Mesa-7.8.2/src/glu/sgi/Makefile 2010-02-05 00:10:40.063963136 +0000
+++ Mesa-7.8.2-haiku/src/glu/sgi/Makefile 2012-01-17 10:02:42.222822400 +0000
@@ -135,13 +135,19 @@ $(TOP)/$(LIB_DIR):
-mkdir $(TOP)/$(LIB_DIR)
# Make the library:
-$(TOP)/$(LIB_DIR)/$(GLU_LIB_NAME): $(OBJECTS)
+$(TOP)/$(LIB_DIR)/lib$(GLU_LIB).so: $(OBJECTS)
$(MKLIB) -o $(GLU_LIB) -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
-major $(GLU_MAJOR) -minor $(GLU_MINOR) -patch $(GLU_TINY) \
-cplusplus $(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \
-exports glu.exports -id $(INSTALL_LIB_DIR)/lib$(GLU_LIB).$(GLU_MAJOR).dylib \
$(GLU_LIB_DEPS) $(OBJECTS)
+$(TOP)/$(LIB_DIR)/lib$(GLU_LIB).a: $(OBJECTS)
+ $(MKLIB) -o $(GLU_LIB) -static -linker '$(CXX)' -ldflags '$(LDFLAGS)' \
+ -major $(GLU_MAJOR) -minor $(GLU_MINOR) -patch $(GLU_TINY) \
+ -cplusplus $(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \
+ -exports glu.exports -id $(INSTALL_LIB_DIR)/lib$(GLU_LIB).$(GLU_MAJOR).dylib \
+ $(GLU_LIB_DEPS) $(OBJECTS)
clean:
-rm -f *.o */*.o */*/*.o
diff -rupN Mesa-7.8.2/src/mesa/glapi/glapi.h Mesa-7.8.2-haiku/src/mesa/glapi/glapi.h
--- Mesa-7.8.2/src/mesa/glapi/glapi.h 2010-06-15 17:43:43.026214400 +0000
+++ Mesa-7.8.2-haiku/src/mesa/glapi/glapi.h 2012-01-17 10:51:04.699662336 +0000
@@ -62,7 +62,7 @@ typedef void (*_glapi_proc)(void); /* ge
#endif
-#if defined(__GNUC__)
+#if defined(__GNUC__) && __GNUC__ > 2
# define likely(x) __builtin_expect(!!(x), 1)
# define unlikely(x) __builtin_expect(!!(x), 0)
#else
+44
View File
@@ -0,0 +1,44 @@
diff --git a/src/mesa/sources.mak b/src/mesa/sources.mak
index 63fbf58..5530230 100644
--- a/src/mesa/sources.mak
+++ b/src/mesa/sources.mak
@@ -277,7 +277,6 @@ ASM_C_FILES = \
$(SRCDIR)/x86/x86_xform.c \
$(SRCDIR)/x86/3dnow.c \
$(SRCDIR)/x86/sse.c \
- $(SRCDIR)/x86/rtasm/x86sse.c \
$(SRCDIR)/sparc/sparc.c \
$(SRCDIR)/x86-64/x86-64.c
diff --git a/src/mesa/tnl/t_vertex_sse.c b/src/mesa/tnl/t_vertex_sse.c
index e0141c3..1afaf78 100644
--- a/src/mesa/tnl/t_vertex_sse.c
+++ b/src/mesa/tnl/t_vertex_sse.c
@@ -36,7 +36,7 @@
#if defined(USE_SSE_ASM)
-#include "x86/rtasm/x86sse.h"
+#include "rtasm/rtasm_x86sse.h"
#include "x86/common_x86_asm.h"
@@ -356,7 +356,7 @@ static GLboolean build_vertex_emit( struct x86_program *p )
struct x86_reg vp0 = x86_make_reg(file_XMM, 1);
struct x86_reg vp1 = x86_make_reg(file_XMM, 2);
struct x86_reg temp2 = x86_make_reg(file_XMM, 3);
- GLubyte *fixup, *label;
+ GLuint fixup, label;
/* Push a few regs?
*/
@@ -658,7 +658,8 @@ void _tnl_generate_sse_emit( struct gl_context *ctx )
p.identity = x86_make_reg(file_XMM, 6);
p.chan0 = x86_make_reg(file_XMM, 7);
- if (!x86_init_func_size(&p.func, MAX_SSE_CODE_SIZE)) {
+ x86_init_func_size(&p.func, MAX_SSE_CODE_SIZE);
+ if (p.func.caps == 0) {
vtx->emit = NULL;
return;
}
+110
View File
@@ -0,0 +1,110 @@
#!/bin/bash
# Mesa-O-Matic
# Copyright 2011, Alexander von Gluck IV
# This script creates an optional package containing the
# the headers and binary code needed by the opengl kit
# to link libGL.so
# This script is run against a *COMPILED* Mesa source tree
echo " Welcome to Mesa-O-Matic!"
echo "-=-=-=-=-=-=-=-=-=-=-=-=-="
echo ""
# These are the Mesa headers and libraries used by the opengl kit
# Headers are probed for dependencies, only specify ones referenced
# by the opengl kit.
MESA_PRIVATE_HEADERS="glheader.h glapi.h glapitable.h glapitemp.h glapi_priv.h context.h driverfuncs.h meta.h colormac.h buffers.h framebuffer.h renderbuffer.h state.h version.h swrast.h swrast_setup.h tnl.h t_context.h t_pipeline.h vbo.h extensions.h s_spantemp.h s_renderbuffer.h s_context.h formats.h cpuinfo.h"
DEBUG=0
#######################################################################
# END CONFIG DATA, Dragons below!
#######################################################################
if [[ $( uname ) != "Haiku" ]]; then
echo "*************************************"
echo " I need to be run on a Haiku system!!"
echo "*************************************"
exit 1
fi
if [[ -z $1 ]]; then
echo ""
echo "Usage: $0 <compiled mesa location>"
echo ""
exit 1
fi
MESA_TOP="$1"
GCC_VER=`gcc -v 2>&1 | tail -1 | awk '{print $3}' | cut -d. -f1`
MESA_VER=`cat $MESA_TOP/Makefile |grep VERSION\= | cut -d= -f2`
DATESTAMP=`date +"%Y-%m-%d"`
echo "Bundling gcc$GCC_VER build of Mesa $MESA_VER..."
cd $MESA_TOP
#######################################################################
# Create Mesa optional pacakge
findInTree() {
RESULT=`find . -name "$1"`
if [[ $? -ne 0 || -z $RESULT ]]; then
echo "$i"
exit 1
fi
echo $RESULT
}
# Directories to search for matching headers
MESA_INCLUDES="-I./include -I./src -I./src/mapi -I./src/mesa"
MESA_DEFINES="-DUSE_X86_ASM -DUSE_PPC_ASM -DUSE_SPARC_ASM"
MESA_DEFINES="$MESA_DEFINES -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DUSE_X86_64_ASM"
ZIP_HEADERS=""
echo "Collecting required Mesa private headers..."
for i in $MESA_PRIVATE_HEADERS
do
FOUND=$(findInTree $i)
if [[ $GCC_VER -eq 2 ]]; then
# gcc2 isn't very good at -MM
setgcc gcc4
fi
HEADERS_RAW=`gcc -MM $MESA_INCLUDES $MESA_DEFINES $FOUND`
if [[ $GCC_VER -eq 2 ]]; then
setgcc gcc2
fi
for y in $( echo "$HEADERS_RAW" | cut -d':' -f2 | sed 's/\\//g' | tr -d '\n' )
do
CLEAN_HEADER=$( echo "$y" | grep -v "include/GL/" )
ZIP_HEADERS="$ZIP_HEADERS $CLEAN_HEADER"
done
done
echo "Collecting required Mesa libraries..."
rm -rf lib.haiku
mkdir -p lib.haiku
for i in $( find . -name "*.a" )
do
cp $i lib.haiku/
done
if [[ $DEBUG -eq 0 ]]; then
echo "Stripping debug symbols from Mesa libraries..."
find lib.haiku -exec strip --strip-debug {} \; ;
MESADBG=""
else
MESADBG="dbg"
fi
echo "Creating Mesa OptionalPackage..."
PLATFORM=$( uname -m )
ZIP_FILENAME="../mesa-${MESA_VER}${MESADBG}-x86-gcc${GCC_VER}-${DATESTAMP}.zip"
zip -r -9 $ZIP_FILENAME $ZIP_HEADERS ./include/GL/* ./lib.haiku/*
echo "Great Success! $ZIP_FILENAME created."
+2
View File
@@ -0,0 +1,2 @@
This supybot plugin adds commands useful to Haiku developers.
+64
View File
@@ -0,0 +1,64 @@
# -*- coding: utf-8 -*-
###
# Copyright (c) 2012, François Revol
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions, and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions, and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the author of this software nor the name of
# contributors to this software may be used to endorse or promote products
# derived from this software without specific prior written consent.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
###
"""
A plugin providing helpers for Haiku developers.
"""
import supybot
import supybot.world as world
# Use this for the version of this plugin. You may wish to put a CVS keyword
# in here if you're keeping the plugin in CVS or some similar system.
__version__ = "0.1"
__author__ = supybot.Author('François Revol', 'mmu_man', '[email protected]')
# This is a dictionary mapping supybot.Author instances to lists of
# contributions.
__contributors__ = {}
# This is a url where the most recent plugin package can be downloaded.
__url__ = 'FIXME:http://github.com/mmueller/supybot-git'
import config
import plugin
reload(plugin) # In case we're being reloaded.
# Add more reloads here if you add third-party modules and want them to be
# reloaded when this plugin is reloaded. Don't forget to import them as well!
if world.testing:
import test
Class = plugin.Class
configure = config.configure
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
+50
View File
@@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
###
# Copyright (c) 2012, François Revol
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions, and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions, and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the author of this software nor the name of
# contributors to this software may be used to endorse or promote products
# derived from this software without specific prior written consent.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
###
import supybot.conf as conf
import supybot.registry as registry
def configure(advanced):
# This will be called by supybot to configure this module. advanced is
# a bool that specifies whether the user identified himself as an advanced
# user or not. You should effect your configuration by manipulating the
# registry as appropriate.
from supybot.questions import expect, anything, something, yn
conf.registerPlugin('Haiku', True)
Haiku = conf.registerPlugin('Haiku')
conf.registerChannelValue(Haiku, 'format',
registry.String(str(conf.supybot.reply.format.time()), """Determines the
format string for timestamps. Refer to the Python documentation for the
time module to see what formats are accepted. If you set this variable to
the empty string, the timestamp will not be shown."""))
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
+248
View File
@@ -0,0 +1,248 @@
errors = {
'B_NO_INIT': {'expr': 'B_GENERAL_ERROR_BASE + 13', 'str': 'Initialization failed', 'value': 2147483661},
'EISDIR': {'expr': 'B_IS_A_DIRECTORY', 'str': 'Is a directory', 'value': 2147508233},
'EPROTONOSUPPORT': {'expr': 'B_POSIX_ERROR_BASE + 19', 'str': 'Protocol not supported', 'value': 2147512339},
'ETXTBSY': {'expr': 'B_POSIX_ERROR_BASE + 59', 'str': 'Text file busy', 'value': 2147512379},
'B_DEV_FORMAT_ERROR': {'expr': 'B_DEVICE_ERROR_BASE + 5', 'str': 'Device format error', 'value': 2147524613},
'B_POSIX_ENOMEM': {'expr': 'B_POSIX_ERROR_BASE + 0', 'str': 'Out of memory', 'value': 2147512320},
'ENXIO': {'expr': 'B_POSIX_ERROR_BASE + 11', 'str': 'Device not accessible', 'value': 2147512331},
'B_NOT_AN_EXECUTABLE': {'expr': 'B_OS_ERROR_BASE + 0x302', 'str': 'Not an executable', 'value': 2147488514},
'ETIME': {'expr': 'B_POSIX_ERROR_BASE + 58', 'str': 'STREAM ioctl() timeout', 'value': 2147512378},
'B_MEDIA_REALTIME_UNAVAILABLE': {'expr': 'B_MEDIA_ERROR_BASE + 130', 'str': 'Realtime unavailable', 'value': 2147500162},
'ENOTTY': {'expr': 'B_POSIX_ERROR_BASE + 10', 'str': 'Not a tty', 'value': 2147512330},
'ENAMETOOLONG': {'expr': 'B_NAME_TOO_LONG', 'str': 'File name too long', 'value': 2147508228},
'B_DEV_SEEK_ERROR': {'expr': 'B_DEVICE_ERROR_BASE + 8', 'str': 'Device seek error', 'value': 2147524616},
'B_CANCELED': {'expr': 'B_GENERAL_ERROR_BASE + 12', 'str': 'Operation canceled', 'value': 2147483660},
'EAGAIN': {'expr': 'B_WOULD_BLOCK', 'str': 'Operation would block', 'value': 2147483659},
'B_ERRORS_END': {'expr': 'B_GENERAL_ERROR_BASE + 0xffff', 'str': '', 'value': 2147549183},
'ENOLINK': {'expr': 'B_POSIX_ERROR_BASE + 53', 'str': 'Reserved', 'value': 2147512373},
'B_IO_ERROR': {'expr': 'B_GENERAL_ERROR_BASE + 1', 'str': 'I/O error', 'value': 2147483649},
'ECONNRESET': {'expr': 'B_POSIX_ERROR_BASE + 28', 'str': 'Connection reset by peer', 'value': 2147512348},
'B_MAIL_NO_DAEMON': {'expr': 'B_MAIL_ERROR_BASE + 0', 'str': 'No mail daemon', 'value': 2147516416},
'B_MEDIA_SYSTEM_FAILURE': {'expr': 'B_MEDIA_ERROR_BASE + 100', 'str': 'System failure', 'value': 2147500132},
'EMLINK': {'expr': 'B_POSIX_ERROR_BASE + 5', 'str': 'Too many links', 'value': 2147512325},
'EINPROGRESS': {'expr': 'B_POSIX_ERROR_BASE + 36', 'str': 'Operation now in progress', 'value': 2147512356},
'ENOTSOCK': {'expr': 'B_POSIX_ERROR_BASE + 44', 'str': 'Socket operation on non-socket', 'value': 2147512364},
'B_DEV_FIFO_UNDERRUN': {'expr': 'B_DEVICE_ERROR_BASE + 27', 'str': 'Device FIFO underrun', 'value': 2147524635},
'B_NAME_IN_USE': {'expr': 'B_GENERAL_ERROR_BASE + 8', 'str': 'Name in use', 'value': 2147483656},
'ESHUTDOWN': {'expr': 'B_POSIX_ERROR_BASE + 31', 'str': "Can't send after socket shutdown", 'value': 2147512351},
'B_DIRECTORY_NOT_EMPTY': {'expr': 'B_STORAGE_ERROR_BASE + 6', 'str': 'Directory not empty', 'value': 2147508230},
'B_DEV_CRC_ERROR': {'expr': 'B_DEVICE_ERROR_BASE + 20', 'str': 'Device check-sum error', 'value': 2147524628},
'B_BAD_HANDLER': {'expr': 'B_APP_ERROR_BASE + 3', 'str': 'Bad handler', 'value': 2147491843},
'B_DEV_TIMEOUT': {'expr': 'B_DEVICE_ERROR_BASE + 6', 'str': 'Device timeout', 'value': 2147524614},
'ENOLCK': {'expr': 'B_POSIX_ERROR_BASE + 8', 'str': 'No record locks available', 'value': 2147512328},
'B_LAUNCH_FAILED_EXECUTABLE': {'expr': 'B_APP_ERROR_BASE + 10', 'str': 'File is mistakenly marked as executable', 'value': 2147491850},
'B_NO_MORE_TEAMS': {'expr': 'B_OS_ERROR_BASE + 0x104', 'str': 'No more teams', 'value': 2147488004},
'B_MAIL_ACCESS_ERROR': {'expr': 'B_MAIL_ERROR_BASE + 4', 'str': 'Mail access error', 'value': 2147516420},
'EDEADLK': {'expr': 'B_POSIX_ERROR_BASE + 3', 'str': 'Resource deadlock', 'value': 2147512323},
'EFBIG': {'expr': 'B_POSIX_ERROR_BASE + 4', 'str': 'File too large', 'value': 2147512324},
'B_MEDIA_APP_ALREADY_REGISTERED': {'expr': 'B_MEDIA_ERROR_BASE + 111', 'str': 'Application already registered', 'value': 2147500143},
'ECANCELED': {'expr': 'B_POSIX_ERROR_BASE + 47', 'str': 'Operation canceled', 'value': 2147512367},
'B_BAD_TEAM_ID': {'expr': 'B_OS_ERROR_BASE + 0x103', 'str': 'Operation on invalid team', 'value': 2147488003},
'B_DEV_INVALID_PIPE': {'expr': 'B_DEVICE_ERROR_BASE + 19', 'str': '', 'value': 2147524627},
'EEXIST': {'expr': 'B_FILE_EXISTS', 'str': 'File or Directory already exists', 'value': 2147508226},
'B_AMBIGUOUS_APP_LAUNCH': {'expr': 'B_APP_ERROR_BASE + 6', 'str': 'Ambiguous app launch', 'value': 2147491846},
'EMSGSIZE': {'expr': 'B_POSIX_ERROR_BASE + 42', 'str': 'Message too long', 'value': 2147512362},
'EPROTO': {'expr': 'B_POSIX_ERROR_BASE + 57', 'str': 'Protocol error', 'value': 2147512377},
'B_LAST_BUFFER_ERROR': {'expr': 'B_MEDIA_ERROR_BASE + 7', 'str': 'Last buffer', 'value': 2147500039},
'B_BAD_THREAD_ID': {'expr': 'B_OS_ERROR_BASE + 0x100', 'str': 'Bad thread ID', 'value': 2147488000},
'EOPNOTSUPP': {'expr': 'B_POSIX_ERROR_BASE + 43', 'str': 'Operation not supported', 'value': 2147512363},
'EBUSY': {'expr': 'B_BUSY', 'str': 'Device/File/Resource busy', 'value': 2147483662},
'B_MEDIA_ADDON_RESTRICTED': {'expr': 'B_MEDIA_ERROR_BASE + 126', 'str': 'Media addon restricted', 'value': 2147500158},
'B_MEDIA_BAD_DESTINATION': {'expr': 'B_MEDIA_ERROR_BASE + 118', 'str': 'Bad destination', 'value': 2147500150},
'B_ERROR': {'expr': '', 'str': 'General system error', 'value': -1},
'B_LAUNCH_FAILED_NO_PREFERRED_APP': {'expr': 'B_APP_ERROR_BASE + 13', 'str': 'There is no preferred application for this type of file', 'value': 2147491853},
'EADDRNOTAVAIL': {'expr': 'B_POSIX_ERROR_BASE + 23', 'str': "Can't assign requested address", 'value': 2147512343},
'B_MEDIA_BAD_NODE': {'expr': 'B_MEDIA_ERROR_BASE + 101', 'str': 'Bad media node', 'value': 2147500133},
'B_DEV_PENDING': {'expr': 'B_DEVICE_ERROR_BASE + 28', 'str': 'Device pending', 'value': 2147524636},
'B_MISMATCHED_VALUES': {'expr': 'B_GENERAL_ERROR_BASE + 6', 'str': 'Mismatched values passed to function', 'value': 2147483654},
'B_CROSS_DEVICE_LINK': {'expr': 'B_STORAGE_ERROR_BASE + 11', 'str': 'Cross-device link', 'value': 2147508235},
'B_NO_MORE_SEMS': {'expr': 'B_OS_ERROR_BASE + 1', 'str': 'No more semaphores', 'value': 2147487745},
'EPERM': {'expr': 'B_NOT_ALLOWED', 'str': 'Operation not allowed', 'value': 2147483663},
'B_WOULD_BLOCK': {'expr': 'B_GENERAL_ERROR_BASE + 11', 'str': 'Operation would block', 'value': 2147483659},
'B_DEV_CONFIGURATION_ERROR': {'expr': 'B_DEVICE_ERROR_BASE + 16', 'str': 'Configuration error', 'value': 2147524624},
'B_MEDIA_ADDON_DISABLED': {'expr': 'B_MEDIA_ERROR_BASE + 123', 'str': 'Media addon disabled', 'value': 2147500155},
'ENODATA': {'expr': 'B_POSIX_ERROR_BASE + 52', 'str': 'No message available', 'value': 2147512372},
'B_BAD_PORT_ID': {'expr': 'B_OS_ERROR_BASE + 0x200', 'str': 'Bad port ID', 'value': 2147488256},
'B_TIMED_OUT': {'expr': 'B_GENERAL_ERROR_BASE + 9', 'str': 'Operation timed out', 'value': 2147483657},
'B_NOT_A_DIRECTORY': {'expr': 'B_STORAGE_ERROR_BASE + 5', 'str': 'Not a directory', 'value': 2147508229},
'ENOSPC': {'expr': 'B_DEVICE_FULL', 'str': 'No space left on device', 'value': 2147508231},
'EPROTOTYPE': {'expr': 'B_POSIX_ERROR_BASE + 18', 'str': 'Protocol wrong type for socket', 'value': 2147512338},
'B_MEDIA_CHANGE_IN_PROGRESS': {'expr': 'B_MEDIA_ERROR_BASE + 124', 'str': 'Change in progress', 'value': 2147500156},
'EISCONN': {'expr': 'B_POSIX_ERROR_BASE + 29', 'str': 'Socket is already connected', 'value': 2147512349},
'B_MESSAGE_TO_SELF': {'expr': 'B_APP_ERROR_BASE + 2', 'str': "Can't send message to self", 'value': 2147491842},
'B_DEV_UNEXPECTED_PID': {'expr': 'B_DEVICE_ERROR_BASE + 23', 'str': '', 'value': 2147524631},
'B_MEDIA_CANNOT_SEEK': {'expr': 'B_MEDIA_ERROR_BASE + 109', 'str': 'Cannot seek', 'value': 2147500141},
'ERANGE': {'expr': 'B_POSIX_ERROR_BASE + 17', 'str': 'Range Error', 'value': 2147512337},
'B_BAD_VALUE': {'expr': 'B_GENERAL_ERROR_BASE + 5', 'str': 'Invalid Argument', 'value': 2147483653},
'ESTALE': {'expr': 'B_POSIX_ERROR_BASE + 40', 'str': 'Stale file handle', 'value': 2147512360},
'B_RESOURCE_UNAVAILABLE': {'expr': 'B_MEDIA_ERROR_BASE + 3', 'str': 'Resource unavailable', 'value': 2147500035},
'ENOPROTOOPT': {'expr': 'B_POSIX_ERROR_BASE + 34', 'str': 'Protocol option not available', 'value': 2147512354},
'B_DEV_FIFO_OVERRUN': {'expr': 'B_DEVICE_ERROR_BASE + 26', 'str': 'Device FIFO overrun', 'value': 2147524634},
'B_DEV_RESOURCE_CONFLICT': {'expr': 'B_DEVICE_ERROR_BASE + 15', 'str': 'Resource conflict', 'value': 2147524623},
'ENOATTR': {'expr': 'B_POSIX_ERROR_BASE + 60', 'str': 'No such attribute', 'value': 2147512380},
'B_DEVICE_FULL': {'expr': 'B_STORAGE_ERROR_BASE + 7', 'str': 'No space left on device', 'value': 2147508231},
'B_NO_PRINT_SERVER': {'expr': 'B_PRINT_ERROR_BASE + 0', 'str': 'No print server', 'value': 2147520512},
'ELOOP': {'expr': 'B_LINK_LIMIT', 'str': 'Too many symbolic links', 'value': 2147508236},
'ECHILD': {'expr': 'B_POSIX_ERROR_BASE + 2', 'str': 'No child process', 'value': 2147512322},
'B_BUFFER_NOT_AVAILABLE': {'expr': 'B_MEDIA_ERROR_BASE + 6', 'str': 'Buffer not available', 'value': 2147500038},
'ENOBUFS': {'expr': 'B_POSIX_ERROR_BASE + 35', 'str': 'No buffer space available', 'value': 2147512355},
'B_RESOURCE_NOT_FOUND': {'expr': 'B_MEDIA_ERROR_BASE + 2', 'str': 'Resource not found', 'value': 2147500034},
'EDESTADDRREQ': {'expr': 'B_POSIX_ERROR_BASE + 48', 'str': 'Destination address required', 'value': 2147512368},
'B_MEDIA_BUFFERS_NOT_RECLAIMED': {'expr': 'B_MEDIA_ERROR_BASE + 114', 'str': 'Buffers not reclaimed', 'value': 2147500146},
'B_FILE_ERROR': {'expr': 'B_STORAGE_ERROR_BASE + 0', 'str': 'Bad file descriptor', 'value': 2147508224},
'B_ILLEGAL_DATA': {'expr': 'B_TRANSLATION_ERROR_BASE + 2', 'str': 'Illegal data', 'value': 2147502082},
'EINTR': {'expr': 'B_INTERRUPTED', 'str': 'Interrupted system call', 'value': 2147483658},
'B_MEDIA_NO_HANDLER': {'expr': 'B_MEDIA_ERROR_BASE + 127', 'str': 'No handler', 'value': 2147500159},
'ETIMEDOUT': {'expr': 'B_TIMED_OUT', 'str': 'Operation timed out', 'value': 2147483657},
'ENOSYS': {'expr': 'B_POSIX_ERROR_BASE + 9', 'str': 'Function not implemented', 'value': 2147512329},
'B_DONT_DO_THAT': {'expr': 'B_GENERAL_ERROR_BASE + 17', 'str': "Don't do that!", 'value': 2147483665},
'B_DEV_UNREADABLE': {'expr': 'B_DEVICE_ERROR_BASE + 4', 'str': 'Device unreadable', 'value': 2147524612},
'B_MEDIA_BAD_BUFFER': {'expr': 'B_MEDIA_ERROR_BASE + 104', 'str': 'Bad buffer', 'value': 2147500136},
'B_MAIL_NO_RECIPIENT': {'expr': 'B_MAIL_ERROR_BASE + 6', 'str': 'No mail recipient', 'value': 2147516422},
'B_LAUNCH_FAILED_APP_IN_TRASH': {'expr': 'B_APP_ERROR_BASE + 12', 'str': 'Application is in the trash', 'value': 2147491852},
'B_FILE_NOT_FOUND': {'expr': 'B_STORAGE_ERROR_BASE + 1', 'str': 'No such file or directory', 'value': 2147508225},
'B_NO_MORE_THREADS': {'expr': 'B_OS_ERROR_BASE + 0x101', 'str': 'No more threads', 'value': 2147488001},
'B_MAIL_WRONG_PASSWORD': {'expr': 'B_MAIL_ERROR_BASE + 2', 'str': 'Wrong password (mail)', 'value': 2147516418},
'B_NO_MEMORY': {'expr': 'B_GENERAL_ERROR_BASE + 0', 'str': 'Out of memory', 'value': 2147483648},
'EALREADY': {'expr': 'B_POSIX_ERROR_BASE + 37', 'str': 'Operation already in progress', 'value': 2147512357},
'ENODEV': {'expr': 'B_POSIX_ERROR_BASE + 7', 'str': 'No such device', 'value': 2147512327},
'E2BIG': {'expr': 'B_POSIX_ERROR_BASE + 1', 'str': 'Argument too big', 'value': 2147512321},
'B_LAUNCH_FAILED_APP_NOT_FOUND': {'expr': 'B_APP_ERROR_BASE + 11', 'str': 'Application could not be found', 'value': 2147491851},
'B_OK': {'expr': '', 'str': 'No Error', 'value': 0},
'EMULTIHOP': {'expr': 'B_POSIX_ERROR_BASE + 51', 'str': 'Reserved', 'value': 2147512371},
'EMFILE': {'expr': 'B_NO_MORE_FDS', 'str': 'Too many open files', 'value': 2147508234},
'B_MEDIA_TIME_SOURCE_BUSY': {'expr': 'B_MEDIA_ERROR_BASE + 116', 'str': 'Time source busy', 'value': 2147500148},
'B_NO_ERROR': {'expr': '', 'str': 'No Error', 'value': 0},
'EHOSTDOWN': {'expr': 'B_POSIX_ERROR_BASE + 45', 'str': '', 'value': 2147512365},
'B_RESULT_NOT_REPRESENTABLE': {'expr': 'ERANGE', 'str': '', 'value': 2147512337},
'B_DEV_DATA_UNDERRUN': {'expr': 'B_DEVICE_ERROR_BASE + 25', 'str': 'Device data underrun', 'value': 2147524633},
'B_FILE_TOO_LARGE': {'expr': 'EFBIG', 'str': '', 'value': 2147512324},
'B_BAD_MIME_SNIFFER_RULE': {'expr': 'B_APP_ERROR_BASE + 15', 'str': 'Bad sniffer rule', 'value': 2147491855},
'EDOM': {'expr': 'B_POSIX_ERROR_BASE + 16', 'str': 'Numerical argument out of range', 'value': 2147512336},
'ESIGPARM': {'expr': 'B_POSIX_ERROR_BASE + 15', 'str': 'Signal Error', 'value': 2147512335},
'B_PARTITION_TOO_SMALL': {'expr': 'B_STORAGE_ERROR_BASE + 15', 'str': 'Partition too small to contain filesystem', 'value': 2147508239},
'ENFILE': {'expr': 'B_POSIX_ERROR_BASE + 6', 'str': 'File table overflow', 'value': 2147512326},
'EBADMSG': {'expr': 'B_POSIX_ERROR_BASE + 46', 'str': 'Bad message', 'value': 2147512366},
'B_BAD_REPLY': {'expr': 'B_APP_ERROR_BASE + 0', 'str': 'Invalid or unwanted reply', 'value': 2147491840},
'EADDRINUSE': {'expr': 'B_POSIX_ERROR_BASE + 22', 'str': 'Address already in use', 'value': 2147512342},
'B_NOT_SUPPORTED': {'expr': 'EOPNOTSUPP', 'str': '', 'value': 2147512363},
'EXDEV': {'expr': 'B_CROSS_DEVICE_LINK', 'str': 'Cross-device link', 'value': 2147508235},
'B_DEV_READ_ERROR': {'expr': 'B_DEVICE_ERROR_BASE + 10', 'str': 'Device read error', 'value': 2147524618},
'B_MISSING_LIBRARY': {'expr': 'B_OS_ERROR_BASE + 0x303', 'str': 'Missing library', 'value': 2147488515},
'B_DEV_ID_ERROR': {'expr': 'B_DEVICE_ERROR_BASE + 9', 'str': 'Device ID error', 'value': 2147524617},
'B_MEDIA_BAD_SOURCE': {'expr': 'B_MEDIA_ERROR_BASE + 117', 'str': 'Bad source', 'value': 2147500149},
'B_NO_TRANSLATOR': {'expr': 'B_TRANSLATION_ERROR_BASE + 1', 'str': 'No translator found', 'value': 2147502081},
'B_DUPLICATE_REPLY': {'expr': 'B_APP_ERROR_BASE + 1', 'str': 'Duplicate reply', 'value': 2147491841},
'ENOMEM': {'expr': 'B_NO_MEMORY', 'str': 'Out of memory', 'value': 2147483648},
'ENOSR': {'expr': 'B_POSIX_ERROR_BASE + 54', 'str': 'No STREAM resources', 'value': 2147512374},
'B_DEV_DATA_OVERRUN': {'expr': 'B_DEVICE_ERROR_BASE + 24', 'str': 'Device data overrun', 'value': 2147524632},
'B_BUSY': {'expr': 'B_GENERAL_ERROR_BASE + 14', 'str': 'Device/File/Resource busy', 'value': 2147483662},
'B_NOT_ALLOWED': {'expr': 'B_GENERAL_ERROR_BASE + 15', 'str': 'Operation not allowed', 'value': 2147483663},
'B_MEDIA_BAD_CLIP_FORMAT': {'expr': 'B_MEDIA_ERROR_BASE + 121', 'str': 'Bad clipping format', 'value': 2147500153},
'B_FILE_EXISTS': {'expr': 'B_STORAGE_ERROR_BASE + 2', 'str': 'File or Directory already exists', 'value': 2147508226},
'B_MEDIA_CANNOT_CHANGE_RUN_MODE': {'expr': 'B_MEDIA_ERROR_BASE + 110', 'str': 'Cannot change run mode', 'value': 2147500142},
'ENOTCONN': {'expr': 'B_POSIX_ERROR_BASE + 30', 'str': 'Socket is not connected', 'value': 2147512350},
'B_NAME_NOT_FOUND': {'expr': 'B_GENERAL_ERROR_BASE + 7', 'str': 'Name not found', 'value': 2147483655},
'EFAULT': {'expr': 'B_BAD_ADDRESS', 'str': 'Bad address', 'value': 2147488513},
'EPIPE': {'expr': 'B_BUSTED_PIPE', 'str': 'Broken pipe', 'value': 2147508237},
'ENETUNREACH': {'expr': 'B_POSIX_ERROR_BASE + 25', 'str': 'Network is unreachable', 'value': 2147512345},
'B_MEDIA_TIME_SOURCE_STOPPED': {'expr': 'B_MEDIA_ERROR_BASE + 115', 'str': 'Time source stopped', 'value': 2147500147},
'B_NAME_TOO_LONG': {'expr': 'B_STORAGE_ERROR_BASE + 4', 'str': 'File name too long', 'value': 2147508228},
'B_READ_ONLY_DEVICE': {'expr': 'B_STORAGE_ERROR_BASE + 8', 'str': 'Read-only file system', 'value': 2147508232},
'B_MEDIA_NODE_ALREADY_EXISTS': {'expr': 'B_MEDIA_ERROR_BASE + 107', 'str': 'Media node already exists', 'value': 2147500139},
'B_MAIL_UNKNOWN_USER': {'expr': 'B_MAIL_ERROR_BASE + 1', 'str': 'Unknown mail user', 'value': 2147516417},
'ECONNABORTED': {'expr': 'B_POSIX_ERROR_BASE + 27', 'str': 'Software caused connection abort', 'value': 2147512347},
'EDQUOT': {'expr': 'B_POSIX_ERROR_BASE + 49', 'str': 'Reserved', 'value': 2147512369},
'ENOMSG': {'expr': 'B_POSIX_ERROR_BASE + 39', 'str': 'No message of desired type', 'value': 2147512359},
'ENOENT': {'expr': 'B_ENTRY_NOT_FOUND', 'str': 'No such file or directory', 'value': 2147508227},
'B_SERVER_NOT_FOUND': {'expr': 'B_MEDIA_ERROR_BASE + 1', 'str': 'Server not found', 'value': 2147500033},
'B_NOT_INITIALIZED': {'expr': 'B_GENERAL_ERROR_BASE + 13', 'str': '', 'value': 2147483661},
'B_UNSUPPORTED': {'expr': 'B_STORAGE_ERROR_BASE + 14', 'str': 'Operation not supported', 'value': 2147508238},
'B_DEV_WRITE_ERROR': {'expr': 'B_DEVICE_ERROR_BASE + 11', 'str': 'Device write error', 'value': 2147524619},
'B_MAIL_INVALID_MAIL': {'expr': 'B_MAIL_ERROR_BASE + 7', 'str': 'Invalid mail', 'value': 2147516423},
'ESPIPE': {'expr': 'B_POSIX_ERROR_BASE + 12', 'str': 'Seek not allowed on file descriptor', 'value': 2147512332},
'B_LAUNCH_FAILED': {'expr': 'B_APP_ERROR_BASE + 5', 'str': 'Launch failed', 'value': 2147491845},
'B_INTERRUPTED': {'expr': 'B_GENERAL_ERROR_BASE + 10', 'str': 'Interrupted system call', 'value': 2147483658},
'B_DEV_NO_MEMORY': {'expr': 'B_DEVICE_ERROR_BASE + 1', 'str': 'No device memory', 'value': 2147524609},
'B_BUSTED_PIPE': {'expr': 'B_STORAGE_ERROR_BASE + 13', 'str': 'Broken pipe', 'value': 2147508237},
'B_DEVICE_NOT_FOUND': {'expr': 'ENODEV', 'str': '', 'value': 2147512327},
'B_NO_MORE_FDS': {'expr': 'B_STORAGE_ERROR_BASE + 10', 'str': 'Too many open files', 'value': 2147508234},
'B_STREAM_NOT_FOUND': {'expr': 'B_MEDIA_ERROR_BASE + 0', 'str': 'Stream not found', 'value': 2147500032},
'B_MAIL_UNKNOWN_HOST': {'expr': 'B_MAIL_ERROR_BASE + 3', 'str': 'Mail unknown host', 'value': 2147516419},
'B_PERMISSION_DENIED': {'expr': 'B_GENERAL_ERROR_BASE + 2', 'str': 'Permission denied', 'value': 2147483650},
'B_DEV_RECALIBRATE_ERROR': {'expr': 'B_DEVICE_ERROR_BASE + 7', 'str': 'Device recalibrate error', 'value': 2147524615},
'B_DEV_INVALID_IOCTL': {'expr': 'B_DEVICE_ERROR_BASE + 0', 'str': 'Invalid device ioctl', 'value': 2147524608},
'EROFS': {'expr': 'B_READ_ONLY_DEVICE', 'str': 'Read-only file system', 'value': 2147508232},
'B_MEDIA_NODE_BUSY': {'expr': 'B_MEDIA_ERROR_BASE + 102', 'str': 'Media node busy', 'value': 2147500134},
'ECONNREFUSED': {'expr': 'B_POSIX_ERROR_BASE + 32', 'str': 'Connection refused', 'value': 2147512352},
'ENOTEMPTY': {'expr': 'B_DIRECTORY_NOT_EMPTY', 'str': 'Directory not empty', 'value': 2147508230},
'B_BAD_TYPE': {'expr': 'B_GENERAL_ERROR_BASE + 4', 'str': 'Bad argument type passed to function', 'value': 2147483652},
'ENETDOWN': {'expr': 'B_POSIX_ERROR_BASE + 24', 'str': 'Network is down', 'value': 2147512344},
'ENOSTR': {'expr': 'B_POSIX_ERROR_BASE + 55', 'str': 'Not a STREAM', 'value': 2147512375},
'ENOTDIR': {'expr': 'B_NOT_A_DIRECTORY', 'str': 'Not a directory', 'value': 2147508229},
'B_DEV_BAD_DRIVE_NUM': {'expr': 'B_DEVICE_ERROR_BASE + 2', 'str': 'Bad drive number', 'value': 2147524610},
'B_DEV_MULTIPLE_ERRORS': {'expr': 'B_DEVICE_ERROR_BASE + 29', 'str': 'Multiple device errors', 'value': 2147524637},
'EILSEQ': {'expr': 'B_POSIX_ERROR_BASE + 38', 'str': 'Illegal byte sequence', 'value': 2147512358},
'B_MEDIA_TOO_MANY_NODES': {'expr': 'B_MEDIA_ERROR_BASE + 105', 'str': 'Too many nodes', 'value': 2147500137},
'B_DEV_BAD_PID': {'expr': 'B_DEVICE_ERROR_BASE + 22', 'str': '', 'value': 2147524630},
'B_MEDIA_ADDON_FAILED': {'expr': 'B_MEDIA_ERROR_BASE + 122', 'str': 'Media addon failed', 'value': 2147500154},
'ENOEXEC': {'expr': 'B_NOT_AN_EXECUTABLE', 'str': 'Not an executable', 'value': 2147488514},
'EACCES': {'expr': 'B_PERMISSION_DENIED', 'str': 'Permission denied', 'value': 2147483650},
'ENOTSUP': {'expr': 'B_POSIX_ERROR_BASE + 56', 'str': 'Not supported', 'value': 2147512376},
'EOVERFLOW': {'expr': 'B_POSIX_ERROR_BASE + 41', 'str': 'Value too large for defined type', 'value': 2147512361},
'B_DEBUGGER_ALREADY_INSTALLED': {'expr': 'B_OS_ERROR_BASE + 0x400', 'str': 'Debugger already installed for this team', 'value': 2147488768},
'B_BAD_INDEX': {'expr': 'B_GENERAL_ERROR_BASE + 3', 'str': 'Index not in range for the data set', 'value': 2147483651},
'B_BAD_SCRIPT_SYNTAX': {'expr': 'B_APP_ERROR_BASE + 8', 'str': 'Bad script syntax', 'value': 2147491848},
'EPFNOSUPPORT': {'expr': 'B_POSIX_ERROR_BASE + 20', 'str': 'Protocol family not supported', 'value': 2147512340},
'EFPOS': {'expr': 'B_POSIX_ERROR_BASE + 14', 'str': 'File Position Error', 'value': 2147512334},
'B_MEDIA_CANNOT_RECLAIM_BUFFERS': {'expr': 'B_MEDIA_ERROR_BASE + 113', 'str': 'Cannot reclaim buffers', 'value': 2147500145},
'B_BAD_SEM_ID': {'expr': 'B_OS_ERROR_BASE + 0', 'str': 'Bad semaphore ID', 'value': 2147487744},
'EBADF': {'expr': 'B_FILE_ERROR', 'str': 'Bad file descriptor', 'value': 2147508224},
'B_MEDIA_STALE_CHANGE_COUNT': {'expr': 'B_MEDIA_ERROR_BASE + 125', 'str': 'Stale change count', 'value': 2147500157},
'B_DEV_NOT_READY': {'expr': 'B_DEVICE_ERROR_BASE + 12', 'str': 'Device not ready', 'value': 2147524620},
'B_MEDIA_APP_NOT_REGISTERED': {'expr': 'B_MEDIA_ERROR_BASE + 112', 'str': 'Application not registered', 'value': 2147500144},
'B_MEDIA_DUPLICATE_FORMAT': {'expr': 'B_MEDIA_ERROR_BASE + 128', 'str': 'Duplicate format', 'value': 2147500160},
'B_DEV_STALLED': {'expr': 'B_DEVICE_ERROR_BASE + 21', 'str': 'Device stalled', 'value': 2147524629},
'ENETRESET': {'expr': 'B_POSIX_ERROR_BASE + 26', 'str': 'Network dropped connection on reset', 'value': 2147512346},
'B_TOO_MANY_ARGS': {'expr': 'E2BIG', 'str': '', 'value': 2147512321},
'EWOULDBLOCK': {'expr': 'B_WOULD_BLOCK', 'str': 'Operation would block', 'value': 2147483659},
'B_MEDIA_REALTIME_DISABLED': {'expr': 'B_MEDIA_ERROR_BASE + 129', 'str': 'Realtime disabled', 'value': 2147500161},
'B_MAIL_UNKNOWN_FIELD': {'expr': 'B_MAIL_ERROR_BASE + 5', 'str': 'Unknown mail field', 'value': 2147516421},
'B_DEV_MEDIA_CHANGE_REQUESTED': {'expr': 'B_DEVICE_ERROR_BASE + 14', 'str': 'Device media change requested', 'value': 2147524622},
'EIO': {'expr': 'B_IO_ERROR', 'str': 'I/O error', 'value': 2147483649},
'EAFNOSUPPORT': {'expr': 'B_POSIX_ERROR_BASE + 21', 'str': 'Address family not supported by protocol family', 'value': 2147512341},
'B_MEDIA_ALREADY_CONNECTED': {'expr': 'B_MEDIA_ERROR_BASE + 119', 'str': 'Already connected', 'value': 2147500151},
'B_DEV_MEDIA_CHANGED': {'expr': 'B_DEVICE_ERROR_BASE + 13', 'str': 'Device media changed', 'value': 2147524621},
'ESRCH': {'expr': 'B_POSIX_ERROR_BASE + 13', 'str': 'No such process', 'value': 2147512333},
'B_DEV_DOOR_OPEN': {'expr': 'B_DEVICE_ERROR_BASE + 18', 'str': 'Drive door open', 'value': 2147524626},
'B_SHUTTING_DOWN': {'expr': 'B_APP_ERROR_BASE + 18', 'str': 'System shutting down', 'value': 2147491858},
'B_MISSING_SYMBOL': {'expr': 'B_OS_ERROR_BASE + 0x304', 'str': 'Symbol not found', 'value': 2147488516},
'B_SUBSCRIBER_NOT_ENTERED': {'expr': 'B_MEDIA_ERROR_BASE + 5', 'str': 'Subscriber not entered', 'value': 2147500037},
'B_DEV_TOO_LATE': {'expr': 'B_DEVICE_ERROR_BASE + 30', 'str': 'Device too late', 'value': 2147524638},
'B_BAD_SUBSCRIBER': {'expr': 'B_MEDIA_ERROR_BASE + 4', 'str': 'Bad subscriber', 'value': 2147500036},
'B_ENTRY_NOT_FOUND': {'expr': 'B_STORAGE_ERROR_BASE + 3', 'str': 'No such file or directory', 'value': 2147508227},
'B_LAUNCH_FAILED_FILES_APP_NOT_FOUND': {'expr': 'B_APP_ERROR_BASE + 14', 'str': 'This file has a preferred app, but it could not be found', 'value': 2147491854},
'B_BAD_THREAD_STATE': {'expr': 'B_OS_ERROR_BASE + 0x102', 'str': 'Thread is inappropriate state', 'value': 2147488002},
'B_MEDIA_BAD_FORMAT': {'expr': 'B_MEDIA_ERROR_BASE + 103', 'str': 'Bad media format', 'value': 2147500135},
'B_DEV_NO_MEDIA': {'expr': 'B_DEVICE_ERROR_BASE + 3', 'str': 'No media present', 'value': 2147524611},
'B_BAD_IMAGE_ID': {'expr': 'B_OS_ERROR_BASE + 0x300', 'str': 'Bad image ID', 'value': 2147488512},
'EINVAL': {'expr': 'B_BAD_VALUE', 'str': 'Invalid Argument', 'value': 2147483653},
'B_UNKNOWN_MIME_TYPE': {'expr': 'B_APP_ERROR_BASE + 7', 'str': 'Unknown MIME type', 'value': 2147491847},
'B_NOT_A_MESSAGE': {'expr': 'B_APP_ERROR_BASE + 16', 'str': 'Data is not a message', 'value': 2147491856},
'B_DEV_DISABLED_BY_USER': {'expr': 'B_DEVICE_ERROR_BASE + 17', 'str': 'Disabled by user', 'value': 2147524625},
'EIDRM': {'expr': 'B_POSIX_ERROR_BASE + 50', 'str': 'Identifier removed', 'value': 2147512370},
'B_MEDIA_TOO_MANY_BUFFERS': {'expr': 'B_MEDIA_ERROR_BASE + 106', 'str': 'Too many buffers', 'value': 2147500138},
'B_SHUTDOWN_CANCELLED': {'expr': 'B_APP_ERROR_BASE + 17', 'str': 'System shutdown cancelled', 'value': 2147491857},
'B_MEDIA_NOT_CONNECTED': {'expr': 'B_MEDIA_ERROR_BASE + 120', 'str': 'Not connected', 'value': 2147500152},
'B_LINK_LIMIT': {'expr': 'B_STORAGE_ERROR_BASE + 12', 'str': 'Too many symbolic links', 'value': 2147508236},
'B_ALREADY_RUNNING': {'expr': 'B_APP_ERROR_BASE + 4', 'str': 'Already running', 'value': 2147491844},
'B_BUFFER_OVERFLOW': {'expr': 'EOVERFLOW', 'str': '', 'value': 2147512361},
'B_BAD_DATA': {'expr': 'B_GENERAL_ERROR_BASE + 16', 'str': 'Bad data', 'value': 2147483664},
'B_IS_A_DIRECTORY': {'expr': 'B_STORAGE_ERROR_BASE + 9', 'str': 'Is a directory', 'value': 2147508233},
'B_BAD_ADDRESS': {'expr': 'B_OS_ERROR_BASE + 0x301', 'str': 'Bad address', 'value': 2147488513},
'B_LAUNCH_FAILED_NO_RESOLVE_LINK': {'expr': 'B_APP_ERROR_BASE + 9', 'str': 'Could not resolve a link', 'value': 2147491849},
'B_NO_MORE_PORTS': {'expr': 'B_OS_ERROR_BASE + 0x201', 'str': 'No more ports available', 'value': 2147488257},
'EHOSTUNREACH': {'expr': 'B_POSIX_ERROR_BASE + 33', 'str': 'No route to host', 'value': 2147512353},
'B_MEDIA_BUFFER_ALREADY_EXISTS': {'expr': 'B_MEDIA_ERROR_BASE + 108', 'str': 'Buffer already exists', 'value': 2147500140},
}
+129
View File
@@ -0,0 +1,129 @@
#!python
# run from trunk/ and > errors.py
import re
errors = {}
errors_h = open("headers/os/support/Errors.h", "r")
bases = {}
for line in errors_h:
match = re.match(r'#\s?define\s+(?P<define>\w+)\s+(?P<expr>.+)', line)
if match:
define = match.groupdict().get("define")
expr = match.groupdict().get("expr")
value = None
#print "==== %s ==== %s" % (define, expr)
if expr == "INT_MIN":
value = 0x80000000
if expr == "(-1)":
value = -1
expr = ""
if expr == "((int)0)":
value = 0
expr = ""
m = re.match(r"B_TO_POSIX_ERROR\((?P<expr>.*)\)", expr)
if m:
# strip the macro
expr = m.group("expr")
#print expr
m = re.match(r"B_FROM_POSIX_ERROR\((?P<expr>.*)\)", expr)
if m:
# strip the macro
expr = m.group("expr")
#print expr
m = re.match(r"\((?P<expr>.*)\)", expr)
if m:
# strip the parens
expr = m.group("expr")
#print expr
m = re.match(r"(?P<expr>\w+)$", expr)
if m:
# strip the macro
token = m.group("expr")
if token in errors:
value = errors[token]["value"]
#print "%s -> %s = %s" % (define, token, value)
m = re.match(r"(?P<base>.*_BASE)\s*\+\s*(?P<offset>\w+)$", expr)
if m:
base = m.group("base")
if base not in bases:
raise "error"
b = bases[base]
o = int(m.group("offset"), 0)
value = b + o
#print "value: %x + %x = %x = %d" % (b, o, value, value)
if value is None:
print "Value unknown for %s" % (define)
exit(1)
if re.match(r".*_BASE", define):
#print "base: %s=%s" % (define, value)
bases[define] = value
else:
#print "%s=%s :%s" % (define, expr, value)
errors[define] = {"expr": expr, "value": value, "str": ""}
errors_h.close()
#print bases
#print errors
#print errors['EILSEQ']
#exit(0)
strerror_c = open("src/system/libroot/posix/string/strerror.c", "r")
defines = []
for line in strerror_c:
match = re.match(r'\t*case (?P<define>\w+):', line)
if match:
define = match.groupdict().get("define")
defines.append(define)
match = re.match(r'\t*//\s+(?P<define>\w+):*$', line)
if match:
define = match.groupdict().get("define")
defines.append(define)
match = re.match(r'\t*return "(?P<str>.+)";', line)
if match:
str = match.groupdict().get("str")
#print defines
for d in defines:
#print d
if errors[d]:
#print errors[d]#['str']
errors[d]['str'] = str
else:
print "not found: %s" % (d)
exit(1)
defines = []
#errors[define] = "plop"
strerror_c.close()
# Some fixup
errors['B_OK']['str'] = "No Error"
errors['B_NO_ERROR']['str'] = "No Error"
errors['B_DONT_DO_THAT']['str'] = "Don't do that!"
#print errors
print "errors = {"
for e in errors:
print "'%s': %s," % (e, errors[e])
print "}"
+249
View File
@@ -0,0 +1,249 @@
# -*- coding: utf-8 -*-
###
# Copyright (c) 2012, François Revol
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions, and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions, and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the author of this software nor the name of
# contributors to this software may be used to endorse or promote products
# derived from this software without specific prior written consent.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
###
import supybot.conf as conf
import supybot.utils as utils
from supybot.commands import *
import supybot.callbacks as callbacks
import supybot.log as log
import random
import errors
class Haiku(callbacks.Plugin):
def __init__(self, irc):
#log.error("plop")
#print "plop"
self.fortunes = []
fortunes = open("/home/revol/devel/haiku/trunk/data/system/data/fortunes/Haiku", "r")
print fortunes
if fortunes:
fortune = ""
for line in fortunes:
if line == "%\n":
self.fortunes.append(fortune)
fortune = ""
else:
fortune += line
fortunes.close()
self.__parent = super(Haiku, self)
self.__parent.__init__(irc)
def error(self, irc, msg, args):
"""<error>
Returns the code and value for the given <error> value or code.
"""
print "Haiku: error"
print args
if not args:
raise callbacks.ArgumentError
for arg in args:
err = None
if arg in errors.errors:
err = errors.errors[arg]
key = arg
else:
try:
i = int(arg, 0)
except ValueError:
irc.errorInvalid('argument', arg, Raise=True)
for e in errors.errors:
if errors.errors[e]['value'] == i:
err = errors.errors[e]
key = e
if err is None:
irc.reply("Unknown error '%s'" % (arg))
else:
expr = err['expr']
value = err['value']
r = "%s = %s = 0x%x (%d): %s" % (key, expr, int(value), value, err['str'])
irc.reply(r)
def haiku(self, irc, msg, args):
"""
Returns a random haiku.
"""
if len(self.fortunes) > 0:
h = self.fortunes[int(random.random() * len(self.fortunes))].split('\n')
for l in h:
if l != "":
irc.reply(l, prefixNick = False)
else:
irc.reply("No haiku found")
def reportbugs(self, irc, msg, args):
"""
Returns some infos on reporting bugs.
"""
to = None
if len(args) > 0:
to = args[0]
t = "If you think there is a bug in Haiku, please report a bug so we can remember to fix it. cf. http://dev.haiku-os.org/wiki/ReportingBugs"
irc.reply(t, to = to)
def patchwanted(self, irc, msg, args):
"""
Returns some infos on submitting patches.
"""
to = None
if len(args) > 0:
to = args[0]
t = "Haiku is Free Software, therefore you can fix it yourself and send a patch, which would likely be very appreciated. cf. http://dev.haiku-os.org/wiki/SubmittingPatches"
irc.reply(t, to = to)
def download(self, irc, msg, args):
"""
Returns download links.
"""
to = None
if len(args) > 0:
to = args[0]
t = "Current release: http://www.haiku-os.org/get-haiku - Nightly builds: http://haiku-files.org/haiku/development/"
irc.reply(t, to = to)
def dl(self, irc, msg, args):
"""
Returns download links.
"""
return self.download(irc, msg, args)
def vi(self, irc, msg, args):
"""
Trolls.
"""
to = None
if len(args) > 0:
to = args[0]
t = "emacs!"
irc.reply(t, to = to)
def emacs(self, irc, msg, args):
"""
Trolls.
"""
to = None
if len(args) > 0:
to = args[0]
t = "vi!"
irc.reply(t, to = to)
def bored(self, irc, msg, args):
"""
Returns some infos.
"""
to = None
if len(args) > 0:
to = args[0]
t = "Why won't you get on some easy tasks then? http://dev.haiku-os.org/wiki/EasyTasks"
irc.reply(t, to = to)
def jlg(self, irc, msg, args):
"""
Praise Jean-Louis Gassée.
"""
to = None
if len(args) > 0:
to = args[0]
t = "Jean-Louis Gassée, such a Grand Fromage!"
irc.reply(t, to = to)
def basement(self, irc, msg, args):
"""
Puts people to work.
"""
to = "everyone"
who = "them"
if len(args) > 0:
to = args[0]
who = "him"
if len(args) > 1:
to = ' and '.join([', '.join(args[:-1]), args[-1]])
who = "them"
t = "sends %s to BGA's basement and chains %s to a post in front of a computer. Get to work!" % (to, who)
irc.reply(t, action = True)
def trout(self, irc, msg, args):
"""
Puts someone back to his place.
"""
if len(args) > 0:
to = args[0]
if len(args) > 1:
to = ' and '.join([', '.join(args[:-1]), args[-1]])
t = "slaps %s with a trout." % (to)
irc.reply(t, action = True)
def plop(self, irc, msg, args):
"""
Returns some infos.
"""
to = None
if len(args) > 0:
to = args[0]
t = "plop"
irc.reply(t, to = to)
def shibboleet(self, irc, msg, args):
"""
Tech support.
"""
irc.reply("http://xkcd.com/806/ Tech Support")
Class = Haiku
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
+47
View File
@@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
###
# Copyright (c) 2012, François Revol
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# * Redistributions of source code must retain the above copyright notice,
# this list of conditions, and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions, and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# * Neither the name of the author of this software nor the name of
# contributors to this software may be used to endorse or promote products
# derived from this software without specific prior written consent.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
###
from supybot.test import *
class HaikuTestCase(PluginTestCase):
plugins = ('Haiku')
def testSeconds(self):
self.assertResponse('!plop', 'plop')
def testNoErrors(self):
self.assertNotError('!plop')
def testNoNestedErrors(self):
self.assertNotError('!plop')
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
+95 -9
View File
@@ -56,7 +56,7 @@
if [ -z "$DEVROOT" ]; then
DRLIST="$HOME/devel /Data /work /Volumes/Data/devel"
for d in $DRLIST; do
test -d $d && DEVROOT=$d && break;
test -d "$d" && DEVROOT="$d" && break;
done
fi
export DEVROOT
@@ -64,14 +64,14 @@ export DEVROOT
# automagically find password files
PWLIST="/Data /fat32 $HOME"
for d in $PWLIST; do
test -d $d/PASSWDS && PASSWDS=$d/PASSWDS && break;
test -d "$d/PASSWDS" && PASSWDS="$d/PASSWDS" && break;
done
export PASSWDS
# svn sometimes forgets about vi and wants me to use nano...
#export EDITOR=vim
function dev() {
dev() {
if [ $# -lt 1 ]; then
#ls $DEVROOT/*/.profile | sed 's,.*/\([^/]*\)/.profile,\1,'
for f in "$DEVROOT/"*; do test -e "$f/.profile" || continue; echo ${f##*/}; done
@@ -89,12 +89,16 @@ function dev() {
mkdir "$DEVROOT/$1" && touch "$DEVROOT/$1/.profile"
# fallback
fi
export DEVPROJ="$1"
if [ ! -d "$DEVROOT/$1" ]; then
echo "invalid project name '$1'"
return 1
fi
# change to the project root folder
cd "$DEVROOT/$1"
# use a specific history file
export HISTFILE="$DEVROOT/$1/.bash_history"
# and bump up the history limits
@@ -103,6 +107,10 @@ function dev() {
export HISTCONTROL=ignoreboth
# and force loading the new histfile
history -r
# force default locale so that compiler errors and such are reported in english
#export LC_ALL=C.UTF-8
# set the prompt
# cf. http://tldp.org/HOWTO/Bash-Prompt-HOWTO/
NICEPS1='\[\033[1m\][\u@\h \w]\[\033[0m\]\$ '
@@ -122,6 +130,7 @@ function dev() {
export PROMPT_COMMAND='echo -en "\033]0;['$1':${PWD##*/}]\a"'
;;
esac
# lower priority so background builds don't slow the GUI too much
case "$OSTYPE" in
beos|haiku)
@@ -136,6 +145,8 @@ function dev() {
;;
esac
DEVUPCMD=""
# source the specific profile file
test -f .profile && . .profile
@@ -143,14 +154,89 @@ function dev() {
test -z "$EDITOR" -a -z "$SVN_EDITOR" && export EDITOR=vim
# make sure the update action is the first found in history.
test -d .svn && history -s svn up
test -d .bzr && history -s bzr update
test -d .hg && history -s hg pull
test -d .git && history -s git pull
test -d CVS && history -s cvs up -d
test -n "$P4PORT" && history -s p4 sync
test -z "$DEVUPCMD" -a -d .svn && DEVUPCMD="svn up"
test -z "$DEVUPCMD" -a -d .bzr && DEVUPCMD="bzr update"
test -z "$DEVUPCMD" -a -d .hg && DEVUPCMD="hg pull"
test -z "$DEVUPCMD" -a -d .git && DEVUPCMD="git pull"
test -z "$DEVUPCMD" -a -d CVS && DEVUPCMD="cvs up -d"
test -z "$DEVUPCMD" -a \( -f _FOSSIL_ -o -f .fslckout \) && DEVUPCMD="fossil update"
test -z "$DEVUPCMD" -a -n "$P4PORT" && DEVUPCMD="p4 sync"
test -n "$DEVUPCMD" && history -s "$DEVUPCMD"
# spice up terminal window title for git, add current branch name
test -d .git && PROMPT_COMMAND='echo -en "\033]0;['$DEVPROJ':`git branch 2>/dev/null | sed "/^[^*]/d;s/^\*\s//"`:${PWD##*/}]\a"'
}
complete -W complete -W "$(dev)" dev
_devup_notify() {
echo "#### $*" >&2
}
devup() {
if [ $# -lt 1 ]; then
#ls $DEVROOT/*/.profile | sed 's,.*/\([^/]*\)/.profile,\1,'
for f in "$DEVROOT/"*; do
test -e "$f/.profile" || continue
grep "^# AUTOUP$" "$f/.profile" > /dev/null 2>&1 || continue
p="${f##*/}"
_devup_notify "Updating $p..."
devup "$p" && _devup_notify "Updated $p: OK" || (_devup_notify "Updating $p: Error: $?"; read)
done
return 0
fi
# subshell!!!
(
export DEVPROJ="$1"
if [ ! -d "$DEVROOT/$1" ]; then
echo "invalid project name '$1'"
return 1
fi
# change to the project root folder
cd "$DEVROOT/$1"
# lower priority so background builds don't slow the GUI too much
case "$OSTYPE" in
beos|haiku)
prio $$ 1
;;
darwin10.*)
renice 3 $$
;;
linux-*)
# linux doesn't really need it much
#renice 3 $$
;;
esac
DEVUPCMD=""
# source the specific profile file
test -f .profile && . .profile
# make sure the update action is the first found in history.
if [ -z "$DEVUPCMD" ]; then
test -d .svn && DEVUPCMD="svn up"
test -d .bzr && DEVUPCMD="bzr update"
test -d .hg && DEVUPCMD="hg pull"
test -d .git && DEVUPCMD="git pull"
test -d CVS && DEVUPCMD="cvs up -d"
test -n "$P4PORT" && DEVUPCMD="p4 sync"
fi
test -n "$DEVUPCMD" || return 7
# run the update command...
eval "$DEVUPCMD"
return $?
)
return $?
}
complete -W complete -W "$(dev)" devup
+1 -1
View File
@@ -30,7 +30,7 @@ dumpview () {
local C=0
while [ $C -lt $CNT ]; do
local INAME="$(hey "$APP" get InternalName of View $C of $1 Window $WIN | grep result | cut -d" " -f 7)"
local INAME="$(hey "$APP" get InternalName of View $C of $1 Window $WIN | grep result | sed 's/.* : //')"
echo "$2:: View $C/$CNT ($INAME) ( View $C of ${1}Window $WIN )"
# hey "$APP" get View $C of $1 Window $WIN | awk " { print \" $2\" \$0 } "
# hey "$APP" getsuites of View $C of $1 Window $WIN | grep Label >/dev/null
+140
View File
@@ -0,0 +1,140 @@
## BeOS Generic Makefile v2.5 ##
## Fill in this file to specify the project being created, and the referenced
## makefile-engine will do all of the hard work for you. This handles both
## Intel and PowerPC builds of the BeOS and Haiku.
## Application Specific Settings ---------------------------------------------
# specify the name of the binary
NAME=proj2make
# specify the type of binary
# APP: Application
# SHARED: Shared library or add-on
# STATIC: Static library archive
# DRIVER: Kernel Driver
TYPE=
# if you plan to use localization features
# specify the application MIME siganture
APP_MIME_SIG=
# add support for new Pe and Eddie features
# to fill in generic makefile
#%{
# @src->@
# specify the source files to use
# full paths or paths relative to the makefile can be included
# all files, regardless of directory, will have their object
# files created in the common object directory.
# Note that this means this makefile will not work correctly
# if two source files with the same name (source.c or source.cpp)
# are included from different directories. Also note that spaces
# in folder names do not work well with this makefile.
SRCS=proj2make.cpp
# specify the resource definition files to use
# full path or a relative path to the resource file can be used.
RDEFS=
# specify the resource files to use.
# full path or a relative path to the resource file can be used.
# both RDEFS and RSRCS can be defined in the same makefile.
RSRCS=
# @<-src@
#%}
# end support for Pe and Eddie
# specify additional libraries to link against
# there are two acceptable forms of library specifications
# - if your library follows the naming pattern of:
# libXXX.so or libXXX.a you can simply specify XXX
# library: libbe.so entry: be
#
# - for version-independent linking of standard C++ libraries please add
# $(STDCPPLIBS) instead of raw "stdc++[.r4] [supc++]" library names
#
# - for localization support add following libs:
# locale localestub
#
# - if your library does not follow the standard library
# naming scheme you need to specify the path to the library
# and it's name
# library: my_lib.a entry: my_lib.a or path/my_lib.a
LIBS=be root $(STDCPPLIBS)
# specify additional paths to directories following the standard
# libXXX.so or libXXX.a naming scheme. You can specify full paths
# or paths relative to the makefile. The paths included may not
# be recursive, so include all of the paths where libraries can
# be found. Directories where source files are found are
# automatically included.
LIBPATHS=
# additional paths to look for system headers
# thes use the form: #include <header>
# source file directories are NOT auto-included here
SYSTEM_INCLUDE_PATHS =
# additional paths to look for local headers
# thes use the form: #include "header"
# source file directories are automatically included
LOCAL_INCLUDE_PATHS =
# specify the level of optimization that you desire
# NONE, SOME, FULL
OPTIMIZE=
# specify here the codes for languages you are going
# to support in this application. The default "en"
# one must be provided too. "make catkeys" will recreate only
# locales/en.catkeys file. Use it as template for creating other
# languages catkeys. All localization files must be placed
# in "locales" sub-directory.
LOCALES=
# specify any preprocessor symbols to be defined. The symbols will not
# have their values set automatically; you must supply the value (if any)
# to use. For example, setting DEFINES to "DEBUG=1" will cause the
# compiler option "-DDEBUG=1" to be used. Setting DEFINES to "DEBUG"
# would pass "-DDEBUG" on the compiler's command line.
DEFINES=
# specify special warning levels
# if unspecified default warnings will be used
# NONE = supress all warnings
# ALL = enable all warnings
WARNINGS =
# specify whether image symbols will be created
# so that stack crawls in the debugger are meaningful
# if TRUE symbols will be created
SYMBOLS = TRUE
# specify debug settings
# if TRUE will allow application to be run from a source-level
# debugger. Note that this will disable all optimzation.
DEBUGGER = TRUE
# specify additional compiler flags for all files
COMPILER_FLAGS =
# specify additional linker flags
LINKER_FLAGS =
# specify the version of this particular item
# (for example, -app 3 4 0 d 0 -short 340 -long "340 "`echo -n -e '\302\251'`"1999 GNU GPL")
# This may also be specified in a resource.
APP_VERSION =
# (for TYPE == DRIVER only) Specify desired location of driver in the /dev
# hierarchy. Used by the driverinstall rule. E.g., DRIVER_PATH = video/usb will
# instruct the driverinstall rule to place a symlink to your driver's binary in
# ~/add-ons/kernel/drivers/dev/video/usb, so that your driver will appear at
# /dev/video/usb when loaded. Default is "misc".
DRIVER_PATH =
## include the makefile-engine
include $(BUILDHOME)/etc/makefile-engine
+310
View File
@@ -0,0 +1,310 @@
/*
* Copyright 2012 Aleksas Pantechovskis, <[email protected]>
* All rights reserved. Distributed under the terms of the MIT License.
*/
#include <exception>
#include <fstream>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <string.h>
#include <ByteOrder.h>
#include <FindDirectory.h>
#include <Path.h>
#include <String.h>
#include <TypeConstants.h>
using namespace std;
const char* kUsageMessage = \
"proj2make usage:\n"
"# proj2make <projPath> [makePath]\n"
"# if makePath parameter doesn't specified makefile will be created in\n"
"# the same directory as .proj file\n"
"# example: proj2make /boot/home/myprog/myprog.proj\n";
fstream gProjFile;
uint32 gProjLength;
uint8* gProjData;
fstream gMakeFile;
fstream gTemplateFile;
string gSPthString;
string gPPthString;
string gFil1String;
string gLinkString;
string gPLnkString;
const char* gAppTypes[] = {
"APP",
"SHARED",
"STAITC",
"DRIVER"
};
uint8 gAppType;
string gAppName;
struct hdr
{
uint32 Id() { return
static_cast<uint32>(B_BENDIAN_TO_HOST_INT32(fId)); }
uint32 Size() { return
static_cast<uint32>(B_BENDIAN_TO_HOST_INT32(fSize)); }
const char* Data() { return (char*)(this + 1); }
private:
uint32 fId;
uint32 fSize;
};
class Error : public std::exception
{
BString fWhat;
public:
Error(const char* what, ...);
virtual ~Error() throw() {}
virtual const char* what() const throw() { return fWhat.String(); }
};
Error::Error(const char* what, ...)
{
const int size = 1024;
va_list args;
va_start(args, what);
vsnprintf(fWhat.LockBuffer(size), size, what, args);
fWhat.UnlockBuffer();
va_end(args);
}
void
CheckFiles(const char* projPath, const char* makePath)
{
gProjFile.open(projPath, fstream::in | fstream::binary);
if (!gProjFile.is_open())
throw Error("%s not found", projPath);
gProjFile.seekg(0, ios::end);
uint32 projFileLength = gProjFile.tellg();
gProjFile.seekg(0, ios::beg);
char* name = new char[5];
gProjFile.read(name, 4);
uint32 length;
gProjFile.read((char*)&length, 4);
name[4] = '\0';
length = static_cast<uint32>(B_BENDIAN_TO_HOST_INT32(length));
gProjLength = length + 8;
if (strcmp(name, "MIDE") != 0 || gProjLength > projFileLength)
throw Error("File corrupted or it is not BeIDE *.proj file");
gMakeFile.open(makePath, fstream::in);
if (gMakeFile.is_open())
throw Error("%s already exists", makePath);
gMakeFile.open(makePath, fstream::out);
if (!gMakeFile.is_open())
throw Error("Can not create makefile");
BPath templateFileName;
// not supporter yet in my haiku rev
// find_directory(B_SYSTEM_DEVELOP_DIR, &templateFileName);
// templateFileName.Append("etc/makefile");
templateFileName.SetTo("/boot/develop/etc/makefile");
gTemplateFile.open(templateFileName.Path(), fstream::in);
if (!gTemplateFile.is_open())
throw Error("Can not open template %s", templateFileName.Path());
}
void
ParseGenB(hdr* data)
{
hdr* child = (hdr*)data->Data();
char* name = (char*)(child + 1);
int len = strlen(name) + 1;
uint32 u = child->Id();
char* c = (char*)&u;
printf("\t%c%c%c%c:%d:%s\n", c[3], c[2], c[1], c[0], child->Size(), name);
if (strncmp(name, "ProjectPrefsx86", len - 1) == 0) {
const char* type = child->Data() + len + 8;
if (*type <= 3)
gAppType = *type;
type++;
type += 64; // skip the mime type name
gAppName = type;
}
}
class _l {
static string _s;
public:
_l() { _s += " " ; }
~_l() { _s.resize(_s.size() - 1); }
char* str() { _s.c_str(); }
};
string _l::_s;
void
Parse(hdr* current, hdr* parent)
{
_l l;
uint32 u = current->Id();
char* c = (char*)&u;
printf("%#06x:%s%c%c%c%c:%d\n",
(uint8*)current - gProjData, l.str(),
c[3], c[2], c[1], c[0], current->Size());
bool useGrandParent = false;
size_t off = 0;
switch(current->Id()) {
case 'Fil1':
case 'Link':
case 'PLnk':
off = 24;
break;
case 'MIDE':
case 'DPrf':
case 'GPrf':
break;
case 'MSFl':
off = 8;
useGrandParent = true;
break;
case 'SPth':
gSPthString += " \\\n\t";
gSPthString += &current->Data()[5];
return;
case 'PPth':
gPPthString += " \\\n\t";
gPPthString += &current->Data()[5];
return;
case 'Name':
if (parent->Id() == 'Fil1') {
gFil1String += " \\\n\t";
gFil1String += &current->Data()[4];
} else if (parent->Id() == 'Link') {
gLinkString += " \\\n\t";
gLinkString += &current->Data()[4];
} else if (parent->Id() == 'PLnk') {
gPLnkString += " \\\n\t";
gPLnkString += &current->Data()[4];
}
return;
case 'GenB':
ParseGenB(current);
return;
default:
return;
}
hdr* child = (hdr*)(current->Data() + off);
while (off < current->Size()) {
Parse(child, useGrandParent ? parent : current);
off += child->Size() + sizeof(hdr);
child = (hdr*)(child->Data() + child->Size());
}
}
void
ReadProj()
{
gProjFile.seekg(0, ios::beg);
gProjData = new uint8[gProjLength];
gProjFile.read((char*)gProjData, gProjLength);
gProjFile.close();
Parse((hdr*)gProjData, NULL);
}
void
Proj2Make()
{
gFil1String = " ";
gLinkString = " ";
gPLnkString = " ";
gSPthString = " ";
gPPthString = " ";
ReadProj();
string str;
while (gTemplateFile.good()) {
getline(gTemplateFile, str);
if (str.find("SRCS") == 0)
str = str + gFil1String;
else if (str.find("LIBS") == 0)
str = str + gLinkString;
else if (str.find("SYSTEM_INCLUDE_PATHS") == 0)
str = str + gSPthString;
else if (str.find("LOCAL_INCLUDE_PATHS") == 0)
str = str + gPPthString;
else if (str.find("TYPE") == 0)
str = str + gAppTypes[gAppType];
else if (str.find("NAME") == 0)
str = str + gAppName;
else if (str.find("RSRCS") == 0)
str = str + gPLnkString;
gMakeFile << str << endl;
}
gMakeFile.close();
gTemplateFile.close();
}
int
main(int argc, char** argv)
{
try {
if (argc <= 1 || (argc > 1 && strcmp(argv[1], "--help") == 0))
throw Error("");
BString projPath = argv[1];
BString makePath;
// if makefile path specified
if (argc > 2)
makePath = argv[2];
// default makefile path
else {
BPath path(argv[1]);
path.GetParent(&path);
path.Append("makefile");
makePath = path.Path();
}
CheckFiles(projPath.String(), makePath.String());
Proj2Make();
} catch(exception& exc) {
cerr << argv[0] << " : " << exc.what() << endl;
cerr << kUsageMessage;
return B_ERROR;
}
return B_OK;
}
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/vmware
config.version = "8"
virtualHW.version = "3"
virtualHW.version = "6"
MemAllowAutoScaleDown = "false"
MemTrimRate = "-1"
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/vmware
config.version = "8"
virtualHW.version = "3"
virtualHW.version = "6"
MemAllowAutoScaleDown = "false"
MemTrimRate = "-1"
+1 -1
View File
@@ -1,6 +1,6 @@
#!/usr/bin/vmware
config.version = "8"
virtualHW.version = "3"
virtualHW.version = "6"
MemAllowAutoScaleDown = "false"
MemTrimRate = "-1"
+9 -6
View File
@@ -113,7 +113,6 @@ Depends ScreenSaverKit :
# TODO: src/add-ons/locale/collators/GermanDIN-2.cpp does not compile
NotFile LocaleKit ;
Depends LocaleKit :
liblocale.so
Locale
# binaries for building localized software on haiku
@@ -129,20 +128,20 @@ Depends LocaleKit :
LocaleKitTests
;
# Prepare the optional build features before parsing the Jamfile tree.
include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalBuildFeatures ] ;
# Add optional packages given via HAIKU_ADD_OPTIONAL_PACKAGES.
if $(HAIKU_ADD_OPTIONAL_PACKAGES) {
AddOptionalHaikuImagePackages
[ FSplitString $(HAIKU_ADD_OPTIONAL_PACKAGES) : / ] ;
}
# Prepare the optional build features before parsing the Jamfile tree.
include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ;
# Include packages that are required by all images.
AddOptionalHaikuImagePackages MandatoryPackages ;
# If enabled, make sure that OpenSSL is added to the image.
if $(HAIKU_OPENSSL_ENABLED) {
if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) {
AddOptionalHaikuImagePackages OpenSSL ;
}
@@ -174,7 +173,11 @@ SubDir HAIKU_TOP ;
UserBuildConfigRulePostBuildTargets ;
# specify the Haiku image and network boot archive contents
include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ;
if $(TARGET_ARCH) = x86_64 {
include [ FDirName $(HAIKU_BUILD_RULES_DIR) Haiku64Image ] ;
} else {
include [ FDirName $(HAIKU_BUILD_RULES_DIR) HaikuImage ] ;
}
include [ FDirName $(HAIKU_BUILD_RULES_DIR) NetBootArchive ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) FloppyBootImage ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDBootImage ] ;
+1 -8
View File
@@ -42,9 +42,9 @@ include [ FDirName $(HAIKU_BUILD_RULES_DIR) CommandLineArguments ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) ConfigRules ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) DocumentationRules ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) FileRules ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) FreetypeRules ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) HeadersRules ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) KernelRules ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) BootRules ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) ImageRules ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) CDRules ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) MainBuildRules ] ;
@@ -89,11 +89,4 @@ if $(HAIKU_BUILD_PROFILE) && ! $(HAIKU_BUILD_PROFILE_DEFINED) {
}
}
# Include embedded board-specific file.
# UserBuildConfig can override HAIKU_BOOT_BOARD.
if $(HAIKU_BOOT_BOARD) {
include [ FDirName $(HAIKU_BUILD_RULES_DIR) board $(HAIKU_BOOT_BOARD)
BoardSetup ] ;
}
PrepareConfigVariables ;
+19 -8
View File
@@ -24,7 +24,7 @@ Pre-requisite software
Tools provided within Haiku's repositories
* Jam (Jam 2.5-haiku-20090626)
* Jam (Jam 2.5-haiku-20111222)
* Haiku's cross-compiler (needed only for non-Haiku platforms)
The tools to compile Haiku will vary, depending on the platform that you are
@@ -32,7 +32,7 @@ using to build Haiku. When building from Haiku, all of the necessary
development tools are included in official releases (e.g. R1 alpha 1) and in the
(unstable) nightly builds.
* Subversion client
* Git client
* SSH client (for developers with commit access)
* gcc and the binutils (as, ld, etc., required by gcc)
* make (GNU make)
@@ -60,6 +60,10 @@ The following tools are needed to compile Haiku for the ARM platform
* Mtools (http://www.gnu.org/software/mtools/intro.html)
* sfdisk
Specific: Linux
---------------
* zlib1g-dev (for building GCC4 buildtools on Linux hosts)
Specific: Mac OS X
------------------
@@ -71,6 +75,13 @@ The following darwin ports need to be installed:
* libiconv
* gnuregex
* gsed
* cdrtools
* yasm
* wget
* less
* mpfr
* gmp
* libmpc
More information about individual distributions of Linux and BSD can be found
at http://haiku-os.org/guides/building/pre-reqs
@@ -84,12 +95,12 @@ of build tools for compiling Haiku on an operating system other than Haiku.
The buildtools are needed only for non-Haiku platform.
Anonymous checkout:
svn co http://svn.haiku-os.org/haiku/haiku/trunk haiku
svn co http://svn.haiku-os.org/haiku/buildtools/trunk buildtools
git clone git://git.haiku-os.org/haiku
git clone git://git.haiku-os.org/buildtools
Developer with commit access:
svn co svn+ssh://<developer-account>@svn.haiku-os.org/srv/svn/repos/haiku/haiku/trunk haiku
svn co svn+ssh://<developer-account>@svn.haiku-os.org/srv/svn/repos/haiku/buildtools/trunk buildtools
git clone ssh://git.haiku-os.org/haiku
git clone ssh://git.haiku-os.org/buildtools
Building the Jam executable
@@ -158,7 +169,7 @@ http://www.haiku-os.org/guides/building/gcc-hybrid
Configure options
-----------------
The various runtime options for configure are documented in it's onscreen help
The various runtime options for configure are documented in its onscreen help
./configure --help
@@ -246,7 +257,7 @@ partition in your bootmanager and try to boot Haiku like any other OS you
have installed. To include a new partition in the Haiku bootmanager run this
in a Terminal:
bootman
BootManager
On Emulated Hardware
--------------------
+41 -6
View File
@@ -3,6 +3,23 @@ Greetings.
This document is intended to serve as an introduction to the Haiku project.
As such, this is only the tip of the iceberg.
About the Haiku project
-----------------------
The Haiku project is comprised of numerous volunteers spread across the globe.
While Haiku supports localization efforts, the primary language is English.
The project is mindful of the language barrier for non-English speakers. To
note, the native language of the majority of contributors is not English.
Design goals
------------
If the ideology of the Haiku project were to be explained in a few short words,
it would be something like this. The software shall have sensible defaults with
minimal configuration required. The code shall adhere to the coding guidelines
and implement the functionality in best possible manner.
Haiku project website
---------------------
http://www.haiku-os.org
@@ -12,6 +29,19 @@ the project, blog posts (from developers, Google Summer of Code participants,
and other frequent contributors), forums, and a vast collection of information.
Communication
-------------
http://www.haiku-os.org/community/ml
http://www.haiku-os.org/community/ml/etiquette
The primary means of communication are through mailing lists and are generally
hosted by FreeLists. In addition to the mailing lists (ML), numerous users and
contributors frequent IRC (irc.freenode.net#haiku). There is also BeShare, an
online chat and file sharing application.
* http://haikuware.com/directory/view-details/internet-network/chat-irc/beshare
* http://dev.osdrawer.net/projects/beshare
Development tracker
-------------------
http://dev.haiku-os.org/
@@ -26,9 +56,13 @@ This is the Haiku project's development tracker.
{OpenGrok
---------
http://haiku.it.su.se:8180/source
http://grok.bikemonkey.org/source
http://code.metager.de/source/xref/haiku
https://github.com/search?q=repo%3Ahaiku%2Fhaiku&type=Code
Graciously provided by <name>.
Graciously provided by Janne Johansson, Landon Fuller and MetaGer respectively.
This allows you to quickly and easily search Haiku's source code.
GitHub, while not {OpenGrok, also provides search functionality.
Coding Guidelines
@@ -80,9 +114,9 @@ there, you can view detailed reports and analysis of Haiku (and other open
source software projects).
Haiku Translation Assistant (HTA)
Haiku Interface Translation
---------------------------------
http://hta.polytect.org/
http://i18n.haiku-os.org/pootle
This is the current solution to assisting people in translating Haiku's
on screen text to other languages. Consult the [haiku-i18n] mailing list
@@ -93,9 +127,10 @@ Haiku User Guide Translation
----------------------------
http://i18n.haiku-os.org/userguide/
Similar to HTA, this site is for coordinating the efforts of translating Haiku's
User Guide and Welcome page to other spoken languages. Subscribe to the
[haiku-doc] mailing list: http://www.freelists.org/list/haiku-doc
Similar to the Haiku Interface Translation, this site is for coordinating the
efforts of translating Haiku's User Guide and Welcome page to other spoken
languages. Subscribe to the [haiku-doc] mailing list:
http://www.freelists.org/list/haiku-doc
HaikuPorts
+1 -1
View File
@@ -1 +1 @@
To customize the settings defined in these headers, create a folder "user_config_headers" in the "build" folder and copy the headers you want to modify into that folder. Your custom headers will be ignored by SVN and the build system will automatically use them instead of the original ones. But be aware that when changes are commited to the files in "config_headers", you will have to apply them to your custom headers manually.
To customize the settings defined in these headers, create a folder "user_config_headers" in the "build" folder and copy the headers you want to modify into that folder. Your custom headers will be ignored by the version control system and the build system will automatically use them instead of the original ones. But be aware that when changes are commited to the files in "config_headers", you will have to apply them to your custom headers manually.
+24 -1
View File
@@ -101,14 +101,37 @@
// Enables swap support.
#define ENABLE_SWAP_SUPPORT 1
// Use the slab allocator as generic memory allocator (malloc()/free()).
// Use the selected allocator as generic memory allocator (malloc()/free()).
#define USE_DEBUG_HEAP_FOR_MALLOC 0
// Heap implementation with additional debugging facilities.
#define USE_GUARDED_HEAP_FOR_MALLOC 0
// Heap implementation that allocates memory so that the end of the
// allocation always coincides with a page end and is followed by a guard
// page which is marked non-present. Out of bounds access (both read and
// write) therefore cause a crash (unhandled page fault). Note that this
// allocator is neither speed nor space efficient, indeed it wastes huge
// amounts of pages and address space so it is quite easy to hit limits.
#define USE_SLAB_ALLOCATOR_FOR_MALLOC 1
// Heap implementation based on the slab allocator (for production use).
// Replace the object cache with the guarded heap to force debug features. Also
// requires the use of the guarded heap for malloc.
#define USE_GUARDED_HEAP_FOR_OBJECT_CACHE 0
// Enables additional sanity checks in the slab allocator's memory manager.
#define DEBUG_SLAB_MEMORY_MANAGER_PARANOID_CHECKS 0
// Disables memory re-use in the guarded heap (freed memory is never reused and
// stays invalid causing every access to crash). Note that this is a magnitude
// more space inefficient than the guarded heap itself. Fully booting may not
// work at all due to address space waste.
#define DEBUG_GUARDED_HEAP_DISABLE_MEMORY_REUSE 0
// When set limits the amount of available RAM (in MB).
//#define LIMIT_AVAILABLE_MEMORY 256
// Enables tracking of page allocations.
#define VM_PAGE_ALLOCATION_TRACKING 0
#endif // KERNEL_DEBUG_CONFIG_H
+3
View File
@@ -28,6 +28,8 @@
#define BMESSAGE_TRACING 0
#define FILE_DESCRIPTOR_TRACING 0
#define FILE_DESCRIPTOR_TRACING_STACK_TRACE 0 /* stack trace depth */
#define GUARDED_HEAP_TRACING 0
#define GUARDED_HEAP_TRACING_STACK_TRACE 0 /* stack trace depth */
#define IO_CONTEXT_TRACING 0
#define IO_CONTEXT_TRACING_STACK_TRACE 0 /* stack trace depth */
#define KERNEL_HEAP_TRACING 0
@@ -35,6 +37,7 @@
#define NET_BUFFER_TRACING 0
#define NET_BUFFER_TRACING_STACK_TRACE 0 /* stack trace depth */
#define PAGE_ALLOCATION_TRACING 0
#define PAGE_ALLOCATION_TRACING_STACK_TRACE 0 /* stack trace depth */
#define PAGE_DAEMON_TRACING 0
#define PAGE_STATE_TRACING 0
#define PAGE_STATE_TRACING_STACK_TRACE 0 /* stack trace depth */
+129
View File
@@ -0,0 +1,129 @@
rule SetupBoot
{
# Usage SetupBoot <sources_or_objects> : <extra_cc_flags> : <include_private_headers> ;
#
# <sources_or_objects> - Ideally sources, otherwise HDRSEARCH can not be
# set for the sources and the sources some header
# dependencies might be missing.
local sources = [ FGristFiles $(1) ] ;
local objects = $(sources:S=$(SUFOBJ)) ;
# add private kernel headers
if $(3) != false {
SourceSysHdrs $(sources) : $(TARGET_PRIVATE_KERNEL_HEADERS) ;
}
local object ;
for object in $(objects) {
# add boot flags for the object
ObjectCcFlags $(object) : $(TARGET_BOOT_CCFLAGS) $(2) ;
ObjectC++Flags $(object) : $(TARGET_BOOT_C++FLAGS) $(2) ;
ObjectDefines $(object) : $(TARGET_KERNEL_DEFINES) ;
ASFLAGS on $(object) = $(TARGET_BOOT_CCFLAGS) ;
# override warning flags
TARGET_WARNING_CCFLAGS on $(object) = $(TARGET_KERNEL_WARNING_CCFLAGS) ;
TARGET_WARNING_C++FLAGS on $(object)
= $(TARGET_KERNEL_WARNING_C++FLAGS) ;
}
}
rule BootObjects
{
SetupBoot $(1) : $(2) ;
Objects $(1) ;
}
rule BootLd
{
# BootLd <name> : <objs> : <linkerscript> : <args> ;
LINK on $(1) = $(TARGET_LD) ;
LINKFLAGS on $(1) = $(4) ;
if $(3) { LINKFLAGS on $(1) += --script=$(3) ; }
# Remove any preset LINKLIBS, but link against libgcc.a. Linking against
# libsupc++ is opt-out.
local libs ;
if ! [ on $(1) return HAIKU_NO_LIBSUPC++ ] {
libs += $(TARGET_BOOT_LIBSUPC++) ;
}
LINKLIBS on $(1) = $(libs) $(TARGET_BOOT_LIBGCC) ;
# TODO: Do we really want to invoke SetupBoot here? The objects should
# have been compiled with BootObjects anyway, so we're doing that twice.
SetupBoot $(2) ;
# Show that we depend on the libraries we need
LocalClean clean : $(1) ;
LocalDepends all : $(1) ;
Depends $(1) : $(2) ;
MakeLocateDebug $(1) ;
on $(1) XRes $(1) : $(RESFILES) ;
if ! [ on $(1) return $(DONT_USE_BEOS_RULES) ] {
SetType $(1) ;
MimeSet $(1) ;
SetVersion $(1) ;
}
}
actions BootLd bind VERSION_SCRIPT
{
$(LINK) $(LINKFLAGS) -o "$(1)" "$(2)" $(LINKLIBS) \
--version-script=$(VERSION_SCRIPT)
}
rule BootMergeObject
{
# BootMergeObject <name> : <sources> : <extra CFLAGS> : <other objects> ;
# Compiles source files and merges the object files to an object file.
# <name>: Name of the object file to create. No grist will be added.
# <sources>: Sources to be compiled. Grist will be added.
# <extra CFLAGS>: Additional flags for compilation.
# <other objects>: Object files or static libraries to be merged. No grist
# will be added.
#
SetupBoot $(2) : $(3) ;
Objects $(2) ;
MergeObjectFromObjects $(1) : $(2:S=$(SUFOBJ)) : $(4) ;
LINKFLAGS on $(1) += $(TARGET_BOOT_LINKFLAGS) ;
}
rule BootStaticLibrary
{
# Usage BootStaticLibrary <name> : <sources> : <extra cc flags> ;
# This is designed to take a set of sources and libraries and create
# a file called lib<name>.a
SetupBoot $(2) : $(3) : false ;
Library $(1) : $(2) ;
}
rule BootStaticLibraryObjects
{
# Usage BootStaticLibrary <name> : <sources> ;
# This is designed to take a set of sources and libraries and create
# a file called <name>
# Show that we depend on the libraries we need
SetupBoot $(2) ;
LocalClean clean : $(1) ;
LocalDepends all : $(1) ;
Depends $(1) : $(2) ;
MakeLocateDebug $(1) ;
}
actions BootStaticLibraryObjects
{
# Force recreation of the archive to avoid build errors caused by
# stale dependencies after renaming or deleting object files.
$(RM) "$(1)"
$(HAIKU_AR) -r "$(1)" "$(2)" ;
}
+894
View File
@@ -0,0 +1,894 @@
# This file contains setup for build features that are not available for all
# architectures/setups or that are optional for the build. For features that
# require downloading a zip file from somewhere it is likely the same file used
# for an optional package.
# Add the target architecture as a build feature.
EnableBuildFeatures $(HAIKU_ARCH) ;
if $(HAIKU_GCC_VERSION[1]) = 2 {
EnableBuildFeatures gcc2 ;
}
local baseURL = http://www.haiku-files.org/files/optional-packages ;
local hpkgBaseURL = http://haiku-files.org/files/hpkg ;
# SSL
# Automatically enable the SSL feature, when the optional OpenSSL optional
# package is enabled.
if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
HAIKU_BUILD_FEATURE_SSL = 1 ;
}
if $(HAIKU_GCC_VERSION[1]) >= 4 {
if $(TARGET_ARCH) = x86_64 {
HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-x86_64-2012-12-18.zip ;
} else {
HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-r1a4-x86-gcc4-2012-08-29.zip ;
}
} else {
HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-1-x86_gcc2.hpkg ;
}
HAIKU_OPENSSL_URL = $(hpkgBaseURL)/$(HAIKU_OPENSSL_PACKAGE) ;
if $(HAIKU_BUILD_FEATURE_SSL) {
if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 {
# Download the package.
local zipFile = [ DownloadFile $(HAIKU_OPENSSL_PACKAGE)
: $(HAIKU_OPENSSL_URL) ] ;
# zip file and output directory
HAIKU_OPENSSL_ZIP_FILE = $(zipFile) ;
HAIKU_OPENSSL_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_OPENSSL_PACKAGE:B) ] ;
# extract headers and libraries
HAIKU_OPENSSL_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_OPENSSL_DIR)
: develop/headers/ : $(zipFile) : extracted-openssl
] ;
HAIKU_OPENSSL_LIBS = [ ExtractArchive $(HAIKU_OPENSSL_DIR)
:
develop/lib/libcrypto.so
develop/lib/libssl.so
: $(zipFile)
: extracted-openssl
] ;
HAIKU_OPENSSL_HEADERS
= [ FDirName $(HAIKU_OPENSSL_DIR) develop/headers ] ;
EnableBuildFeatures openssl ;
} else {
Echo "SSL build feature not available for $(TARGET_ARCH)" ;
}
}
# ICU
# Note ICU isn't actually optional, but is still an external package
HAIKU_ICU_GCC_2_PACKAGE = icu-4.8.1.1-2-x86_gcc2.hpkg ;
HAIKU_ICU_GCC_4_PACKAGE = icu-4.8.1.1-r1a4-x86-gcc4-2012-08-29.zip ;
# TODO: Make hpkg!
HAIKU_ICU_PPC_PACKAGE = icu-4.8.1-ppc-2011-08-20.zip ;
HAIKU_ICU_ARM_PACKAGE = icu-4.8.1.1-arm-2012-11-21.zip ;
HAIKU_ICU_X86_64_PACKAGE = icu-4.8.1.1-x86_64-2012-07-30.zip ;
if $(TARGET_ARCH) in arm ppc x86 x86_64 {
local icu_package ;
if $(TARGET_ARCH) = ppc {
icu_package = $(HAIKU_ICU_PPC_PACKAGE) ;
HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1-ppc-2011-12-19.zip ;
} else if $(TARGET_ARCH) = arm {
icu_package = $(HAIKU_ICU_ARM_PACKAGE) ;
HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-arm-2012-11-21.zip ;
} else if $(TARGET_ARCH) = x86_64 {
icu_package = $(HAIKU_ICU_X86_64_PACKAGE) ;
HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-x86_64-2012-07-30.zip ;
} else if $(HAIKU_GCC_VERSION[1]) = 2 {
icu_package = $(HAIKU_ICU_GCC_2_PACKAGE) ;
HAIKU_ICU_DEVEL_PACKAGE = icu_devel-4.8.1.1-2-x86_gcc2.hpkg ;
} else {
icu_package = $(HAIKU_ICU_GCC_4_PACKAGE) ;
HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-x86-gcc4-2011-12-20.zip ;
}
local packageFile = [ DownloadFile $(icu_package)
: $(hpkgBaseURL)/$(icu_package) ] ;
# zip file and output directory
HAIKU_ICU_PACKAGE_FILE = $(packageFile) ;
HAIKU_ICU_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(icu_package:B) ] ;
# extract libraries
if $(TARGET_ARCH) = ppc {
HAIKU_ICU_LIBS = [ ExtractArchive $(HAIKU_ICU_DIR)
:
libicudata.so.48.1
libicui18n.so.48.1
libicuio.so.48.1
libicule.so.48.1
libiculx.so.48.1
libicutu.so.48.1
libicuuc.so.48.1
: $(packageFile)
: extracted-icu
] ;
} else {
HAIKU_ICU_LIBS = [ ExtractArchive $(HAIKU_ICU_DIR)
:
develop/lib/libicudata.so.48.1.1
develop/lib/libicui18n.so.48.1.1
develop/lib/libicuio.so.48.1.1
develop/lib/libicule.so.48.1.1
develop/lib/libiculx.so.48.1.1
develop/lib/libicutu.so.48.1.1
develop/lib/libicuuc.so.48.1.1
: $(packageFile)
: extracted-icu
] ;
}
# zip file and output directory
HAIKU_ICU_DEVEL_ZIP_FILE = [ DownloadFile $(HAIKU_ICU_DEVEL_PACKAGE)
: $(hpkgBaseURL)/$(HAIKU_ICU_DEVEL_PACKAGE) ] ;
HAIKU_ICU_DEVEL_DIR = $(HAIKU_ICU_DIR) ;
# extract headers
HAIKU_ICU_HEADERS_DEPENDENCY = [ ExtractArchive
$(HAIKU_ICU_DEVEL_DIR:G=icu_devel)
# We need a grist here, so it's a different target than the one for the
# main package, even though it's the same directory.
: develop/headers : $(HAIKU_ICU_DEVEL_ZIP_FILE)
: extracted-icu-devel ] ;
HAIKU_ICU_HEADERS
= [ FDirName $(HAIKU_ICU_DEVEL_DIR) develop headers ] ;
EnableBuildFeatures icu ;
} else {
Echo "ICU not available for $(TARGET_ARCH)" ;
}
# CLucene
# Automatically install the CLucene feature, when the optional CLucene optional
# package is enabled.
if [ IsOptionalHaikuImagePackageAdded CLucene ] {
HAIKU_BUILD_FEATURE_CLUCENE = 1 ;
}
HAIKU_CLUCENE_PACKAGE = clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip ;
HAIKU_CLUCENE_URL = $(baseURL)/$(HAIKU_CLUCENE_PACKAGE) ;
if $(HAIKU_BUILD_FEATURE_CLUCENE) {
if $(TARGET_ARCH) != x86 {
Echo "CLucene build feature not available for $(TARGET_ARCH)" ;
} else {
# Download the zip archive.
local zipFile = [ DownloadFile $(HAIKU_CLUCENE_PACKAGE)
: $(HAIKU_CLUCENE_URL) ] ;
# zip file and output directory
HAIKU_CLUCENE_ZIP_FILE = $(zipFile) ;
HAIKU_CLUCENE_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_CLUCENE_PACKAGE:B) ] ;
# extract headers and libraries
HAIKU_CLUCENE_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_CLUCENE_DIR)
: common/include/ : $(zipFile) : extracted-clucene
] ;
HAIKU_CLUCENE_LIBS = [ ExtractArchive $(HAIKU_CLUCENE_DIR)
:
common/lib/libclucene.a
: $(zipFile)
: extracted-clucene
] ;
HAIKU_CLUCENE_HEADERS
= [ FDirName $(HAIKU_CLUCENE_DIR) common include ] ;
EnableBuildFeatures clucene ;
}
}
# LLVM
if $(TARGET_ARCH) = x86 {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_LLVM_FILE = llvm-3.2-x86-gcc4-2012-12-21.zip ;
local zipFile = [ DownloadFile $(HAIKU_LLVM_FILE)
: $(baseURL)/$(HAIKU_LLVM_FILE) ] ;
HAIKU_LLVM_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_LLVM_FILE:B) ] ;
HAIKU_LLVM_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LLVM_DIR)
: common/include/ : $(zipFile) : extracted-llvm ] ;
HAIKU_LLVM_HEADERS = [ FDirName $(HAIKU_LLVM_DIR) common include ] ;
# We can't Glob these because they aren't extracted yet.
HAIKU_LLVM_LIBS = [ ExtractArchive $(HAIKU_LLVM_DIR)
:
common/lib/libLLVMAsmParser.a
common/lib/libLLVMInstrumentation.a
common/lib/libLLVMLinker.a
common/lib/libLLVMArchive.a
common/lib/libLLVMBitReader.a
common/lib/libLLVMDebugInfo.a
common/lib/libLLVMJIT.a
common/lib/libLLVMipo.a
common/lib/libLLVMVectorize.a
common/lib/libLLVMBitWriter.a
common/lib/libLLVMTableGen.a
#common/lib/libLLVMHexagonCodeGen.a
#common/lib/libLLVMHexagonAsmPrinter.a
#common/lib/libLLVMHexagonDesc.a
#common/lib/libLLVMHexagonInfo.a
#common/lib/libLLVMNVPTXCodeGen.a
#common/lib/libLLVMNVPTXDesc.a
#common/lib/libLLVMNVPTXInfo.a
#common/lib/libLLVMNVPTXAsmPrinter.a
#common/lib/libLLVMMBlazeCodeGen.a
#common/lib/libLLVMMBlazeAsmParser.a
#common/lib/libLLVMMBlazeDisassembler.a
#common/lib/libLLVMMBlazeDesc.a
#common/lib/libLLVMMBlazeInfo.a
#common/lib/libLLVMMBlazeAsmPrinter.a
common/lib/libLLVMCppBackendCodeGen.a
common/lib/libLLVMCppBackendInfo.a
#common/lib/libLLVMMSP430CodeGen.a
#common/lib/libLLVMMSP430Desc.a
#common/lib/libLLVMMSP430AsmPrinter.a
#common/lib/libLLVMMSP430Info.a
#common/lib/libLLVMXCoreCodeGen.a
#common/lib/libLLVMXCoreDesc.a
#common/lib/libLLVMXCoreInfo.a
#common/lib/libLLVMCellSPUCodeGen.a
#common/lib/libLLVMCellSPUDesc.a
#common/lib/libLLVMCellSPUInfo.a
#common/lib/libLLVMMipsAsmParser.a
#common/lib/libLLVMMipsCodeGen.a
#common/lib/libLLVMMipsDesc.a
#common/lib/libLLVMMipsAsmPrinter.a
#common/lib/libLLVMMipsDisassembler.a
#common/lib/libLLVMMipsInfo.a
#common/lib/libLLVMARMAsmParser.a
#common/lib/libLLVMARMCodeGen.a
#common/lib/libLLVMARMDisassembler.a
#common/lib/libLLVMARMDesc.a
#common/lib/libLLVMARMInfo.a
#common/lib/libLLVMARMAsmPrinter.a
#common/lib/libLLVMPowerPCCodeGen.a
#common/lib/libLLVMPowerPCDesc.a
#common/lib/libLLVMPowerPCInfo.a
#common/lib/libLLVMPowerPCAsmPrinter.a
#common/lib/libLLVMSparcCodeGen.a
#common/lib/libLLVMSparcDesc.a
#common/lib/libLLVMSparcInfo.a
common/lib/libLLVMX86AsmParser.a
common/lib/libLLVMX86CodeGen.a
common/lib/libLLVMSelectionDAG.a
common/lib/libLLVMAsmPrinter.a
common/lib/libLLVMX86Disassembler.a
common/lib/libLLVMX86Desc.a
common/lib/libLLVMX86Info.a
common/lib/libLLVMX86AsmPrinter.a
common/lib/libLLVMX86Utils.a
common/lib/libLLVMMCDisassembler.a
common/lib/libLLVMMCParser.a
common/lib/libLLVMInterpreter.a
common/lib/libLLVMCodeGen.a
common/lib/libLLVMScalarOpts.a
common/lib/libLLVMInstCombine.a
common/lib/libLLVMTransformUtils.a
common/lib/libLLVMipa.a
common/lib/libLLVMAnalysis.a
common/lib/libLLVMMCJIT.a
common/lib/libLLVMRuntimeDyld.a
common/lib/libLLVMExecutionEngine.a
common/lib/libLLVMTarget.a
common/lib/libLLVMMC.a
common/lib/libLLVMObject.a
common/lib/libLLVMCore.a
common/lib/libLLVMSupport.a
: $(zipFile) : extracted-llvm ]
;
EnableBuildFeatures llvm ;
} else {
# Nor will it ever be
Echo "LLVM not available on GCC2" ;
}
} else {
Echo "LLVM not yet available on $(TARGET_ARCH)" ;
}
# GLU (GL Utilities)
if $(TARGET_ARCH) = x86 {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_GLU_FILE = glu-9.0-x86-gcc4-2012-11-13.zip ;
} else {
HAIKU_GLU_FILE = glu-9.0-x86-gcc2-2012-11-13.zip ;
}
local zipFile = [ DownloadFile $(HAIKU_GLU_FILE)
: $(baseURL)/lib/$(HAIKU_GLU_FILE) ] ;
HAIKU_GLU_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_GLU_FILE:B) ] ;
HAIKU_GLU_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_GLU_DIR)
: develop/headers/os/opengl/GL : $(zipFile) : extracted-glu-headers ] ;
HAIKU_GLU_LIBS = [ ExtractArchive $(HAIKU_GLU_DIR)
: system/lib/libGLU.a : $(zipFile) : extracted-glu ] ;
HAIKU_GLU_HEADERS = [ FDirName $(HAIKU_GLU_DIR) develop headers os opengl ] ;
EnableBuildFeatures glu ;
} else {
Echo "GLU not yet available on $(TARGET_ARCH)" ;
}
# Mesa
if $(TARGET_ARCH) = x86 {
local zipFile ;
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_MESA_FILE = mesa-9.1.1-x86-gcc4-2013-04-27.zip ;
} else {
HAIKU_MESA_FILE = mesa-7.8.2-x86-gcc2-2013-04-28.zip ;
}
zipFile = [ DownloadFile $(HAIKU_MESA_FILE)
: $(baseURL)/$(HAIKU_MESA_FILE) ] ;
HAIKU_MESA_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_MESA_FILE:B) ] ;
HAIKU_MESA_HEADERS = [ FDirName $(HAIKU_MESA_DIR) include ] ;
HAIKU_MESA_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_MESA_DIR)
: include/ : $(zipFile) : extracted-mesa ] ;
# Base Mesa libraries
HAIKU_MESA_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libmesa.a
: $(zipFile)
: extracted-mesa ] ;
HAIKU_GLAPI_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libglapi.a
: $(zipFile)
: extracted-mesa ] ;
Depends $(HAIKU_MESA_HEADERS_DEPENDENCY) : $(HAIKU_GLU_HEADERS_DEPENDENCY) ;
Depends $(HAIKU_GLAPI_LIBS) : $(HAIKU_GLU_LIBS) ;
# Extended Mesa libraries for newer versions
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_GLSL_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libglsl.a
: $(zipFile)
: extracted-mesa ] ;
HAIKU_GALLIUM_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libgallium.a
: $(zipFile)
: extracted-mesa ] ;
if FIsBuildFeatureEnabled(llvm) {
HAIKU_GALLIUM_LLVMPIPE_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libllvmpipe.a
: $(zipFile)
: extracted-mesa ] ;
Depends $(HAIKU_GALLIUM_LLVMPIPE_LIB) : $(HAIKU_LLVM_LIBS) ;
} else {
HAIKU_GALLIUM_SOFTPIPE_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libsoftpipe.a
: $(zipFile)
: extracted-mesa ] ;
}
}
EnableBuildFeatures mesa ;
} else {
Echo "Mesa 3D rendering support not available on $(TARGET_ARCH)" ;
}
# FFmpeg
local ffmpegBaseURL = $(baseURL)/lib ;
if $(TARGET_ARCH) = x86 {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_FFMPEG_FILE = ffmpeg-0.10.2-r1a4-x86-gcc4-2012-09-02.zip ;
HAIKU_SPEEX_FILE = speex-1.2rc1-r1a4-x86-gcc4-2012-09-02.zip ;
HAIKU_LIBTHEORA_FILE = libtheora-1.1.1-r1a4-x86-gcc4-2012-09-02.zip ;
HAIKU_LIBVORBIS_FILE = libvorbis-1.3.2-r1a4-x86-gcc4-2012-09-02.zip ;
HAIKU_LIBOGG_FILE = libogg-1.3.0-r1a4-x86-gcc4-2012-09-02.zip ;
HAIKU_LIBVPX_FILE = libvpx-1.0.0-r1a4-x86-gcc4-2012-09-02.zip ;
} else {
HAIKU_FFMPEG_FILE = ffmpeg-0.10.2-r1a4-x86-gcc2-2012-08-30.zip ;
HAIKU_SPEEX_FILE = speex-1.2rc1-r1a4-x86-gcc2-2012-08-29.zip ;
HAIKU_LIBTHEORA_FILE = libtheora-1.1.1-r1a4-x86-gcc2-2012-08-29.zip ;
HAIKU_LIBVORBIS_FILE = libvorbis-1.3.2-r1a4-x86-gcc2-2012-08-29.zip ;
HAIKU_LIBOGG_FILE = libogg-1.3.0-r1a4-x86-gcc2-2012-08-29.zip ;
HAIKU_LIBVPX_FILE = libvpx-1.0.0-r1a4-x86-gcc2-2012-08-29.zip ;
}
local ffmpegZipFile = [ DownloadFile $(HAIKU_FFMPEG_FILE)
: $(ffmpegBaseURL)/$(HAIKU_FFMPEG_FILE) ] ;
local speexZipFile = [ DownloadFile $(HAIKU_SPEEX_FILE)
: $(ffmpegBaseURL)/$(HAIKU_SPEEX_FILE) ] ;
local libtheoraZipFile = [ DownloadFile $(HAIKU_LIBTHEORA_FILE)
: $(ffmpegBaseURL)/$(HAIKU_LIBTHEORA_FILE) ] ;
local libvorbisZipFile = [ DownloadFile $(HAIKU_LIBVORBIS_FILE)
: $(ffmpegBaseURL)/$(HAIKU_LIBVORBIS_FILE) ] ;
local liboggZipFile = [ DownloadFile $(HAIKU_LIBOGG_FILE)
: $(ffmpegBaseURL)/$(HAIKU_LIBOGG_FILE) ] ;
local libvpxZipFile = [ DownloadFile $(HAIKU_LIBVPX_FILE)
: $(ffmpegBaseURL)/$(HAIKU_LIBVPX_FILE) ] ;
HAIKU_FFMPEG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_FFMPEG_FILE:B) ] ;
HAIKU_SPEEX_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_SPEEX_FILE:B) ] ;
HAIKU_LIBTHEORA_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_LIBTHEORA_FILE:B) ] ;
HAIKU_LIBVORBIS_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_LIBVORBIS_FILE:B) ] ;
HAIKU_LIBOGG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_LIBOGG_FILE:B) ] ;
HAIKU_LIBVPX_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_LIBVPX_FILE:B) ] ;
HAIKU_FFMPEG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_FFMPEG_DIR)
: common/include/ : $(ffmpegZipFile) : extracted-ffmpeg ] ;
HAIKU_SPEEX_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_SPEEX_DIR)
: common/include/ : $(speexZipFile) : extracted-speex ] ;
HAIKU_LIBTHEORA_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBTHEORA_DIR)
: common/include/ : $(libtheoraZipFile) : extracted-libtheora ] ;
HAIKU_LIBVORBIS_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBVORBIS_DIR)
: common/include/ : $(libvorbisZipFile) : extracted-libvorbis ] ;
HAIKU_LIBOGG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBOGG_DIR)
: common/include/ : $(liboggZipFile) : extracted-libogg ] ;
HAIKU_LIBVPX_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBVPX_DIR)
: common/include/ : $(libvpxZipFile) : extracted-libvpx ] ;
HAIKU_FFMPEG_LIBS = [ ExtractArchive $(HAIKU_FFMPEG_DIR)
:
common/lib/libavformat.a
common/lib/libavcodec.a
common/lib/libavdevice.a
common/lib/libavfilter.a
common/lib/libswscale.a
common/lib/libavutil.a
: $(ffmpegZipFile)
: extracted-ffmpeg ] ;
Depends $(HAIKU_FFMPEG_LIBS) : $(HAIKU_FFMPEG_HEADERS_DEPENDENCY) ;
HAIKU_SPEEX_LIBS = [ ExtractArchive $(HAIKU_SPEEX_DIR)
:
common/lib/libspeex.a
: $(speexZipFile)
: extracted-speex ] ;
Depends $(HAIKU_SPEEX_LIBS) : $(HAIKU_SPEEX_HEADERS_DEPENDENCY) ;
HAIKU_LIBTHEORA_LIBS = [ ExtractArchive $(HAIKU_LIBTHEORA_DIR)
:
common/lib/libtheora.a
common/lib/libtheoradec.a
common/lib/libtheoraenc.a
: $(libtheoraZipFile)
: extracted-libtheora ] ;
Depends $(HAIKU_LIBTHEORA_LIBS) : $(HAIKU_LIBTHEORA_HEADERS_DEPENDENCY) ;
HAIKU_LIBVORBIS_LIBS = [ ExtractArchive $(HAIKU_LIBVORBIS_DIR)
:
common/lib/libvorbis.a
common/lib/libvorbisenc.a
: $(libvorbisZipFile)
: extracted-libvorbis ] ;
Depends $(HAIKU_LIBVORBIS_LIBS) : $(HAIKU_LIBVORBIS_HEADERS_DEPENDENCY) ;
HAIKU_LIBOGG_LIBS = [ ExtractArchive $(HAIKU_LIBOGG_DIR)
:
common/lib/libogg.a
: $(liboggZipFile)
: extracted-libogg ] ;
Depends $(HAIKU_LIBOGG_LIBS) : $(HAIKU_LIBOGG_HEADERS_DEPENDENCY) ;
HAIKU_LIBVPX_LIBS = [ ExtractArchive $(HAIKU_LIBVPX_DIR)
:
common/lib/libvpx.a
: $(libvpxZipFile)
: extracted-libvpx ] ;
Depends $(HAIKU_LIBVPX_LIBS) : $(HAIKU_LIBVPX_HEADERS_DEPENDENCY) ;
HAIKU_FFMPEG_HEADERS = [ FDirName $(HAIKU_FFMPEG_DIR) common include ] ;
HAIKU_SPEEX_HEADERS = [ FDirName $(HAIKU_SPEEX_DIR) common include ] ;
HAIKU_LIBTHEORA_HEADERS = [ FDirName $(HAIKU_LIBTHEORA_DIR) common include ] ;
HAIKU_LIBVORBIS_HEADERS = [ FDirName $(HAIKU_LIBVORBIS_DIR) common include ] ;
HAIKU_LIBOGG_HEADERS = [ FDirName $(HAIKU_LIBOGG_DIR) common include ] ;
HAIKU_LIBVPX_HEADERS = [ FDirName $(HAIKU_LIBVPX_DIR) common include ] ;
EnableBuildFeatures ffmpeg ;
} else {
Echo "FFMpeg support not available on $(TARGET_ARCH)" ;
}
# MikMod
local mikmodBaseURL = http://haiku-files.org/files/optional-packages/lib ;
if $(TARGET_ARCH) = x86 {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_MIKMOD_FILE = libmikmod-3.1.11-r1a4-x86-gcc4-2012-09-02.zip ;
} else {
HAIKU_MIKMOD_FILE = libmikmod-3.1.11-r1a4-x86-gcc2-2012-08-29.zip ;
}
local mikmodZipFile = [ DownloadFile $(HAIKU_MIKMOD_FILE)
: $(mikmodBaseURL)/$(HAIKU_MIKMOD_FILE) ] ;
HAIKU_MIKMOD_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_MIKMOD_FILE:B) ] ;
HAIKU_MIKMOD_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_MIKMOD_DIR)
: common/include/ : $(mikmodZipFile) : extracted-mikmod ] ;
HAIKU_MIKMOD_LIBS = [ ExtractArchive $(HAIKU_MIKMOD_DIR)
:
common/lib/libmikmod.a
: $(mikmodZipFile)
: extracted-ffmpeg ] ;
Depends $(HAIKU_MIKMOD_LIBS) : $(HAIKU_MIKMOD_HEADERS_DEPENDENCY) ;
HAIKU_MIKMOD_HEADERS = [ FDirName $(HAIKU_MIKMOD_DIR) common include ] ;
EnableBuildFeatures mikmod ;
} else {
Echo "MikMod support not available on $(TARGET_ARCH)" ;
}
# Freetype
local freetypeBaseURL = $(baseURL)/lib ;
if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 || $(TARGET_ARCH) = arm {
if $(TARGET_ARCH) = arm {
HAIKU_FREETYPE_FILE = freetype-2.4.9-arm-2012-11-21.zip ;
} else if $(TARGET_ARCH) = ppc {
HAIKU_FREETYPE_FILE = freetype-2.4.9-ppc-gcc4-2012-06-26.zip ;
} else if $(TARGET_ARCH) = x86_64 {
HAIKU_FREETYPE_FILE = freetype-2.4.9-x86_64-2012-08-04.zip ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_FREETYPE_FILE = freetype-2.4.9-r1a4-x86-gcc4-2012-09-02.zip ;
} else {
HAIKU_FREETYPE_FILE = freetype-2.4.9-r1a4-x86-gcc2-2012-08-28.zip ;
}
local freetypeZipFile = [ DownloadFile $(HAIKU_FREETYPE_FILE)
: $(freetypeBaseURL)/$(HAIKU_FREETYPE_FILE) ] ;
HAIKU_FREETYPE_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_FREETYPE_FILE:B) ] ;
HAIKU_FREETYPE_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_FREETYPE_DIR)
: develop/headers/3rdparty/freetype2 : $(freetypeZipFile)
: extracted-freetype ] ;
HAIKU_FREETYPE_LIB = [ ExtractArchive $(HAIKU_FREETYPE_DIR)
:
common/lib/libfreetype.so
: $(freetypeZipFile)
: extracted-freetype ] ;
HAIKU_FREETYPE_CURRENT_LIB = [ ExtractArchive $(HAIKU_FREETYPE_DIR)
:
common/lib/libfreetype.so.6.8.1
: $(freetypeZipFile)
: extracted-freetype ] ;
Depends $(HAIKU_FREETYPE_LIB) $(HAIKU_FREETYPE_CURRENT_LIB) : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ;
HAIKU_FREETYPE_CURRENT_LINK = libfreetype.so.6 ;
HAIKU_FREETYPE_HEADERS = [ FDirName $(HAIKU_FREETYPE_DIR) develop
headers 3rdparty ] [ FDirName $(HAIKU_FREETYPE_DIR) develop
headers 3rdparty freetype2 ] ;
EnableBuildFeatures freetype ;
} else {
Echo "Freetype support not available on $(TARGET_ARCH)" ;
}
# TagLib
# Automatically install the TagLib feature, when the optional TagLib optional
# package is enabled.
if [ IsOptionalHaikuImagePackageAdded TagLib ] {
HAIKU_BUILD_FEATURE_TAGLIB = 1 ;
}
HAIKU_TAGLIB_PACKAGE = taglib-1.6.3-r1a4-x86-gcc2-2012-09-03.zip ;
HAIKU_TAGLIB_URL = $(baseURL)/$(HAIKU_TAGLIB_PACKAGE) ;
if $(HAIKU_BUILD_FEATURE_TAGLIB) {
if $(TARGET_ARCH) != x86 {
Echo "TagLib build feature not available for $(TARGET_ARCH)" ;
} else {
# Download the zip archive.
local zipFile = [ DownloadFile $(HAIKU_TAGLIB_PACKAGE)
: $(HAIKU_TAGLIB_URL) ] ;
# zip file and output directory
HAIKU_TAGLIB_ZIP_FILE = $(zipFile) ;
HAIKU_TAGLIB_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_TAGLIB_PACKAGE:B) ] ;
# extract headers and libraries
HAIKU_TAGLIB_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_TAGLIB_DIR)
: common/include/ : $(zipFile) : extracted-taglib
] ;
HAIKU_TAGLIB_LIBS = [ ExtractArchive $(HAIKU_TAGLIB_DIR)
:
common/lib/libtag.so
common/lib/libtag_c.so
: $(zipFile)
: extracted-taglib
] ;
HAIKU_TAGLIB_HEADERS
= [ FDirName $(HAIKU_TAGLIB_DIR) common include taglib ] ;
EnableBuildFeatures taglib ;
}
}
# WebKit
# Automatically install the WebKit feature, when the optional WebPositive
# optional package is enabled.
if [ IsOptionalHaikuImagePackageAdded WebPositive ] {
HAIKU_BUILD_FEATURE_WEBKIT = 1 ;
}
if $(TARGET_ARCH) = x86 {
HAIKU_WEBKIT_FILE = haikuwebkit-1.1.3-x86-gcc4-2012-08-31a.zip ;
} else if $(TARGET_ARCH) = x86_64 {
HAIKU_WEBKIT_FILE = haikuwebkit-1.1.3-x86_64-gcc4-2012-12-22.zip ;
}
if $(HAIKU_BUILD_FEATURE_WEBKIT) {
if $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != x86_64 {
Echo "WebKit support not available on $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) < 4 {
if ! $(isHybridBuild) {
Echo "WebKit support not available on gcc $(HAIKU_GCC_VERSION[1])" ;
} else {
Echo "WebKit to be utilized by gcc4 inside $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR)" ;
}
} else {
local zipFile = [ DownloadFile $(HAIKU_WEBKIT_FILE)
: $(baseURL)/$(HAIKU_WEBKIT_FILE) ] ;
HAIKU_WEBKIT_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_WEBKIT_FILE:B) ] ;
HAIKU_WEBKIT_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_WEBKIT_DIR)
: include/ : $(zipFile) : extracted-webkit ] ;
HAIKU_WEBKIT_LIBS = [ ExtractArchive $(HAIKU_WEBKIT_DIR)
:
lib/libwtf.so
lib/libjavascriptcore.so
lib/libwebcore.so
lib/libwebkit.so
: $(zipFile)
: extracted-webkit
] ;
HAIKU_WEBKIT_HEADERS = [ FDirName $(HAIKU_WEBKIT_DIR) include ] ;
EnableBuildFeatures webkit ;
}
}
# libpng
local libpngBaseURL = $(baseURL)/lib ;
if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 || $(TARGET_ARCH) = arm {
if $(TARGET_ARCH) = arm {
HAIKU_LIBPNG_FILE = libpng-1.5.12-arm-2012-11-21.zip ;
} else if $(TARGET_ARCH) = ppc {
HAIKU_LIBPNG_FILE = libpng-1.5.12-ppc-gcc4-2012-08-27.zip ;
} else if $(TARGET_ARCH) = x86_64 {
HAIKU_LIBPNG_FILE = libpng-1.5.12-x86_64-2012-11-18.zip ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_LIBPNG_FILE = libpng-1.5.12-x86-gcc4-2012-08-23.zip ;
} else {
HAIKU_LIBPNG_FILE = libpng-1.5.12-x86-gcc2-2012-08-23.zip ;
}
local libpngZipFile = [ DownloadFile $(HAIKU_LIBPNG_FILE)
: $(libpngBaseURL)/$(HAIKU_LIBPNG_FILE) ] ;
HAIKU_LIBPNG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_LIBPNG_FILE:B) ] ;
HAIKU_LIBPNG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBPNG_DIR)
: common/include : $(libpngZipFile)
: extracted-libpng ] ;
HAIKU_LIBPNG_LIB = [ ExtractArchive $(HAIKU_LIBPNG_DIR)
:
common/lib/libpng.so
: $(libpngZipFile)
: extracted-libpng ] ;
HAIKU_LIBPNG_CURRENT_LIB = [ ExtractArchive $(HAIKU_LIBPNG_DIR)
:
common/lib/libpng15.so.15.12.0
: $(libpngZipFile)
: extracted-libpng ] ;
Depends $(HAIKU_LIBPNG_LIB) $(HAIKU_LIBPNG_CURRENT_LIB) : $(HAIKU_LIBPNG_HEADERS_DEPENDENCY) ;
HAIKU_LIBPNG_CURRENT_LINK = libpng15.so.15 ;
HAIKU_LIBPNG_HEADERS = [ FDirName $(HAIKU_LIBPNG_DIR) common include ] ;
EnableBuildFeatures libpng ;
} else {
Echo "libpng support not available on $(TARGET_ARCH)" ;
}
# jpeg
local jpegBaseURL = $(baseURL)/lib ;
if $(TARGET_ARCH) in arm ppc x86 x86_64 {
if $(TARGET_ARCH) = arm {
HAIKU_JPEG_FILE = jpeg-8d-arm-2012-11-21.zip ;
} else if $(TARGET_ARCH) = ppc {
HAIKU_JPEG_FILE = jpeg-8d-ppc-gcc4-2012-08-27.zip ;
} else if $(TARGET_ARCH) = x86_64 {
HAIKU_JPEG_FILE = jpeg-8d-x86_64-2012-11-18.zip ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_JPEG_FILE = jpeg-8d-x86-gcc4-2012-08-23.zip ;
} else {
HAIKU_JPEG_FILE = jpeg-8d-x86-gcc2-2012-08-23.zip ;
}
local jpegZipFile = [ DownloadFile $(HAIKU_JPEG_FILE)
: $(jpegBaseURL)/$(HAIKU_JPEG_FILE) ] ;
HAIKU_JPEG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_JPEG_FILE:B) ] ;
HAIKU_JPEG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_JPEG_DIR)
: common/include : $(jpegZipFile)
: extracted-jpeg ] ;
HAIKU_JPEG_LIB = [ ExtractArchive $(HAIKU_JPEG_DIR)
:
common/lib/libjpeg.so
: $(jpegZipFile)
: extracted-jpeg ] ;
HAIKU_JPEG_CURRENT_LIB = [ ExtractArchive $(HAIKU_JPEG_DIR)
:
common/lib/libjpeg.so.8.4.0
: $(jpegZipFile)
: extracted-jpeg ] ;
Depends $(HAIKU_JPEG_LIB) $(HAIKU_JPEG_CURRENT_LIB) : $(HAIKU_JPEG_HEADERS_DEPENDENCY) ;
HAIKU_JPEG_CURRENT_LINK = libjpeg.so.8 ;
HAIKU_JPEG_HEADERS = [ FDirName $(HAIKU_JPEG_DIR) common include ] ;
EnableBuildFeatures libjpeg ;
} else {
Echo "jpeg support not available on $(TARGET_ARCH)" ;
}
# zlib
local zlibBaseURL = $(baseURL)/lib ;
if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 || $(TARGET_ARCH) = arm {
if $(TARGET_ARCH) = arm {
HAIKU_ZLIB_FILE = zlib-1.2.7-arm-2012-11-21.zip ;
} else if $(TARGET_ARCH) = ppc {
HAIKU_ZLIB_FILE = zlib-1.2.7-ppc-gcc4-2012-10-30.zip ;
} else if $(TARGET_ARCH) = x86_64 {
HAIKU_ZLIB_FILE = zlib-1.2.7-x86_64-2012-11-18.zip ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_ZLIB_FILE = zlib-1.2.7-x86-gcc4-2012-10-30.zip ;
} else {
HAIKU_ZLIB_FILE = zlib-1.2.7-x86-gcc2-2012-10-30.zip ;
}
local zlibZipFile = [ DownloadFile $(HAIKU_ZLIB_FILE)
: $(zlibBaseURL)/$(HAIKU_ZLIB_FILE) ] ;
HAIKU_ZLIB_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_ZLIB_FILE:B) ] ;
HAIKU_ZLIB_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_ZLIB_DIR)
: common/include : $(zlibZipFile)
: extracted-zlib ] ;
HAIKU_ZLIB_LIB = [ ExtractArchive $(HAIKU_ZLIB_DIR)
:
common/lib/libz.so
: $(zlibZipFile)
: extracted-zlib ] ;
HAIKU_ZLIB_CURRENT_LIB = [ ExtractArchive $(HAIKU_ZLIB_DIR)
:
common/lib/libz.so.1.2.7
: $(zlibZipFile)
: extracted-zlib ] ;
Depends $(HAIKU_ZLIB_LIB) $(HAIKU_ZLIB_CURRENT_LIB) : $(HAIKU_ZLIB_HEADERS_DEPENDENCY) ;
HAIKU_ZLIB_CURRENT_LINK = libz.so.1 ;
HAIKU_ZLIB_HEADERS = [ FDirName $(HAIKU_ZLIB_DIR) common include ] ;
EnableBuildFeatures zlib ;
} else {
Echo "zlib support not available on $(TARGET_ARCH)" ;
}
# LibSolv
if $(TARGET_ARCH) != x86 {
Echo "Libsolv not available for $(TARGET_ARCH)." ;
} else if $(HAIKU_GCC_VERSION[1]) = 2 {
HAIKU_LIBSOLV_PACKAGE
= libsolv-0.3.0_haiku_2013_04_18-2-x86_gcc2.hpkg ;
} else {
Echo "Libsolv not available for gcc4." ;
}
if $(HAIKU_LIBSOLV_PACKAGE) {
# download package
HAIKU_LIBSOLV_PACKAGE_FILE = [ DownloadFile $(HAIKU_LIBSOLV_PACKAGE)
: $(hpkgBaseURL)/$(HAIKU_LIBSOLV_PACKAGE) ] ;
HAIKU_LIBSOLV_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_LIBSOLV_PACKAGE:B) ] ;
# extract headers and libraries
HAIKU_LIBSOLV_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBSOLV_DIR)
: develop/headers/ : $(HAIKU_LIBSOLV_PACKAGE_FILE) : extracted-libsolv
] ;
HAIKU_LIBSOLV_LIBS = [ ExtractArchive $(HAIKU_LIBSOLV_DIR)
:
develop/lib/libsolv.so
develop/lib/libsolvext.so
: $(HAIKU_LIBSOLV_PACKAGE_FILE)
: extracted-libsolv
] ;
HAIKU_LIBSOLV_HEADERS = [ FDirName $(HAIKU_LIBSOLV_DIR) develop/headers ] ;
}
# GPL add-ons
if $(HAIKU_INCLUDE_GPL_ADDONS) = 1 {
EnableBuildFeatures gpl ;
}
# ATA vs. IDE
#HACK: remove when old ide code is removed!
if $(HAIKU_ATA_STACK) = 1 {
EnableBuildFeatures ata ;
} else {
EnableBuildFeatures ide ;
}
+138 -48
View File
@@ -133,11 +133,25 @@ if $(HAIKU_USE_GCC_PIPE) = 1 {
# TODO: remove the -fno-strict-aliasing option when all code has been
# analyzed/fixed with regard to aliasing.
# TODO: retest/remove the -fno-tree-vrp option as soon as we have updated our
# gcc4 compiler.
# gcc4 compiler. See this discussion on some issues:
# http://www.freelists.org/post/haiku-development/hrev45320-Yet-another-nonobvious-effect-of-ftreevrp-optimization
if $(HAIKU_GCC_VERSION[1]) >= 3 {
HAIKU_GCC_BASE_FLAGS += -fno-strict-aliasing -fno-tree-vrp ;
}
# disable array bounds warnings on gcc 4.6 or newer since they trigger
# too many false positives. Coverity does a better job of this kind of analysis
# anyways.
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_GCC_BASE_FLAGS += -Wno-array-bounds ;
}
# activating graphite optimizations
if $(HAIKU_USE_GCC_GRAPHITE) = 1 {
HAIKU_GCC_BASE_FLAGS += -floop-interchange -ftree-loop-distribution
-floop-strip-mine -floop-block ;
}
if $(HOST_GCC_VERSION[1]) >= 3 {
HOST_GCC_BASE_FLAGS += -fno-strict-aliasing -fno-tree-vrp ;
}
@@ -153,16 +167,15 @@ if $(HAIKU_GCC_VERSION[1]) = 2 {
HAIKU_C++ ?= $(HAIKU_CC) ;
HAIKU_LINK = $(HAIKU_CC) ;
HAIKU_LINKFLAGS = $(HAIKU_GCC_BASE_FLAGS) ;
HAIKU_BOOT_LINKFLAGS = ;
HAIKU_HDRS = [ FStandardHeaders ] ;
HAIKU_CUSTOM_CCFLAGS = $(HAIKU_CCFLAGS) ;
HAIKU_CUSTOM_C++FLAGS = $(HAIKU_C++FLAGS) ;
HAIKU_CCFLAGS = $(HAIKU_GCC_BASE_FLAGS) $(HAIKU_CUSTOM_CCFLAGS) -nostdinc ;
HAIKU_C++FLAGS = $(HAIKU_GCC_BASE_FLAGS) $(HAIKU_CUSTOM_C++FLAGS) -nostdinc ;
HAIKU_KERNEL_CCFLAGS = $(HAIKU_GCC_BASE_FLAGS) $(HAIKU_CUSTOM_CCFLAGS) ;
HAIKU_KERNEL_C++FLAGS = $(HAIKU_GCC_BASE_FLAGS) $(HAIKU_CUSTOM_C++FLAGS) ;
HAIKU_KERNEL_CCFLAGS = $(HAIKU_CCFLAGS) $(HAIKU_GCC_BASE_FLAGS) ;
HAIKU_KERNEL_C++FLAGS = $(HAIKU_C++FLAGS) $(HAIKU_GCC_BASE_FLAGS) ;
HAIKU_BOOT_CCFLAGS = $(HAIKU_CCFLAGS) $(HAIKU_GCC_BASE_FLAGS) ;
HAIKU_BOOT_C++FLAGS = $(HAIKU_C++FLAGS) $(HAIKU_GCC_BASE_FLAGS) ;
HAIKU_CCFLAGS += $(HAIKU_GCC_BASE_FLAGS) -nostdinc ;
HAIKU_C++FLAGS += $(HAIKU_GCC_BASE_FLAGS) -nostdinc ;
HAIKU_DEFINES = __HAIKU__ ;
HAIKU_NO_WERROR ?= 0 ;
@@ -215,7 +228,7 @@ switch $(HAIKU_CPU) {
case ppc :
{
HAIKU_DEFINES += __POWERPC__ ;
HAIKU_BOOT_PLATFORM = openfirmware ;
HAIKU_BOOT_PLATFORM ?= openfirmware ;
HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ; # in kB
# offset in floppy image (>= sizeof(haiku_loader))
HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 192 ; # in kB - unused yet
@@ -223,7 +236,7 @@ switch $(HAIKU_CPU) {
case arm :
{
HAIKU_DEFINES += __ARM__ ;
HAIKU_BOOT_PLATFORM = u-boot ;
HAIKU_BOOT_PLATFORM ?= u-boot ;
HAIKU_BOOT_BOARD ?= verdex ;
HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ;
# in kB (there is not really a floppy on the gumstix ;) )
@@ -247,12 +260,15 @@ switch $(HAIKU_CPU) {
}
case x86_64 :
{
HAIKU_DEFINES += __x86_64__ ;
# x86_64 completely shares the x86 bootloader.
HAIKU_BOOT_PLATFORM = bios_ia32 ;
HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 2880 ; # in kB
# offset in floppy image (>= sizeof(haiku_loader))
HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 300 ; # in kB
# x86_64 kernel source is under arch/x86.
HAIKU_KERNEL_ARCH = x86 ;
# yasm is required for target arch x86_64
if ! $(HAIKU_YASM) {
Exit "HAIKU_YASM not set. Please re-run configure." ;
@@ -291,10 +307,23 @@ switch $(HAIKU_CPU) {
case * :
Exit "Currently unsupported target CPU:" $(HAIKU_CPU) ;
}
# strip is required
if ! $(HAIKU_STRIP) {
Exit "HAIKU_STRIP not set. Please re-run configure." ;
}
# Include embedded board-specific file.
if $(HAIKU_BOOT_BOARD) {
include [ FDirName $(HAIKU_BUILD_RULES_DIR) board $(HAIKU_BOOT_BOARD)
BoardSetup ] ;
}
HAIKU_ARCH ?= $(HAIKU_CPU) ;
HAIKU_ARCH_MACRO_DEFINE = ARCH_$(HAIKU_ARCH) ;
HAIKU_DEFINES += $(HAIKU_ARCH_MACRO_DEFINE) ;
HAIKU_DEFINES += BOOT_ARCHIVE_IMAGE_OFFSET=$(HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET) ;
HAIKU_KERNEL_ARCH ?= $(HAIKU_ARCH) ;
HAIKU_ATA_STACK ?= 1 ;
# directories
@@ -320,22 +349,26 @@ HAIKU_ASFLAGS = ;
HAIKU_KERNEL_CCFLAGS += -finline -fno-builtin ;
HAIKU_KERNEL_C++FLAGS += -finline -fno-builtin -fno-exceptions ;
HAIKU_KERNEL_DEFINES += _KERNEL_MODE ;
HAIKU_BOOT_CCFLAGS += -finline -fno-builtin ;
HAIKU_BOOT_C++FLAGS += -finline -fno-builtin -fno-exceptions ;
if $(HAIKU_GCC_VERSION[1]) >= 3 {
HAIKU_BOOT_C++FLAGS += -fno-use-cxa-atexit ;
HAIKU_KERNEL_C++FLAGS += -fno-use-cxa-atexit ;
}
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_C++FLAGS += -Wno-deprecated ;
if $(HAIKU_GCC_VERSION[2]) >= 3 {
HAIKU_KERNEL_CCFLAGS += -ffreestanding ;
HAIKU_KERNEL_C++FLAGS += -ffreestanding ;
}
HAIKU_BOOT_CCFLAGS += -ffreestanding ;
HAIKU_BOOT_C++FLAGS += -ffreestanding ;
}
HAIKU_KERNEL_PIC_CCFLAGS = -fno-pic ;
HAIKU_KERNEL_PIC_LINKFLAGS = ;
HAIKU_KERNEL_ADDON_LINKFLAGS = ;
switch $(HAIKU_ARCH) {
case ppc :
@@ -356,15 +389,10 @@ switch $(HAIKU_ARCH) {
}
case x86 :
{
if $(HAIKU_CUSTOM_CCFLAGS) = '' {
HAIKU_CCFLAGS += -march=pentium ;
HAIKU_KERNEL_CCFLAGS += -march=pentium ;
}
if $(HAIKU_CUSTOM_C++FLAGS) = '' {
HAIKU_C++FLAGS += -march=pentium ;
HAIKU_KERNEL_CCFLAGS += -march=pentium ;
HAIKU_KERNEL_C++FLAGS += -march=pentium ;
}
# Enable use of the gcc built-in atomic functions instead of atomic_*().
# The former are inlined and have thus less overhead. They are not
@@ -373,6 +401,23 @@ switch $(HAIKU_ARCH) {
}
case x86_64 :
{
# Kernel lives in the top 2GB of the address space, use kernel code
# model.
HAIKU_KERNEL_PIC_CCFLAGS += -mcmodel=kernel ;
# Disable the red zone, which cannot be used in kernel code due to
# interrupts, and always enable the frame pointer so stack traces are
# correct.
HAIKU_KERNEL_CCFLAGS += -mno-red-zone -fno-omit-frame-pointer ;
HAIKU_KERNEL_C++FLAGS += -mno-red-zone -fno-omit-frame-pointer ;
HAIKU_KERNEL_PIC_LINKFLAGS += -z max-page-size=0x1000 ;
HAIKU_KERNEL_ADDON_LINKFLAGS += -z max-page-size=0x1000 ;
# Bootloader is 32-bit.
HAIKU_BOOT_LINKFLAGS += -m elf_i386_haiku ;
HAIKU_BOOT_CCFLAGS += -m32 -march=pentium ;
HAIKU_BOOT_C++FLAGS += -m32 -march=pentium ;
# Enable use of the gcc built-in atomic functions instead of atomic_*().
# The former are inlined and have thus less overhead.
HAIKU_DEFINES += B_USE_BUILTIN_ATOMIC_FUNCTIONS ;
@@ -435,7 +480,7 @@ HAIKU_PRIVATE_SYSTEM_HEADERS =
HAIKU_PRIVATE_KERNEL_HEADERS =
[ PrivateHeaders $(DOT) kernel libroot shared
kernel/boot/platform/$(HAIKU_BOOT_PLATFORM) ]
[ ArchHeaders $(HAIKU_ARCH) ]
[ ArchHeaders $(HAIKU_KERNEL_ARCH) ]
[ FDirName $(HAIKU_COMMON_DEBUG_OBJECT_DIR) system kernel ]
$(HAIKU_PRIVATE_SYSTEM_HEADERS)
;
@@ -480,7 +525,7 @@ HAIKU_SELECT_UNAME_ETC_LIB = ; # libroot, against which we link anyway
# locale libraries
HAIKU_LOCALE_LIBS = liblocale.so liblocalestub.a ;
HAIKU_LOCALE_LIBS = liblocalestub.a ;
# library and executable glue code
@@ -528,9 +573,9 @@ HAIKU_BUILD_DESCRIPTION ?= "Unknown Build" ;
# init library name map
{
local i ;
for i in be bnetapi debug game GL locale mail media midi midi2 network
opengl package root screensaver textencoding tracker translation
z {
for i in be bnetapi debug device game GL locale mail media midi midi2
network opengl package root screensaver textencoding tracker
translation z {
HAIKU_LIBRARY_NAME_MAP_$(i) = lib$(i).so ;
}
HAIKU_LIBRARY_NAME_MAP_libstdc++ = $(HAIKU_LIBSTDC++) ;
@@ -548,6 +593,7 @@ HOST_PLATFORM_IS_64_BIT = ;
switch $(HOST_GCC_MACHINE) {
case amd64-* : HOST_PLATFORM_IS_64_BIT = 1 ;
case i686-apple-darwin10 : HOST_PLATFORM_IS_64_BIT = 1 ;
case i686-apple-darwin11 : HOST_PLATFORM_IS_64_BIT = 1 ;
case x86_64-* : HOST_PLATFORM_IS_64_BIT = 1 ;
}
@@ -604,6 +650,13 @@ if $(HOST_PLATFORM) = linux || $(HOST_PLATFORM) = freebsd
}
}
# On recent versions of OS X cc and c++ point to clang, which fails to
# compile some of the host tools. As a workaround, force use of GCC.
if $(HOST_PLATFORM) = darwin {
HOST_CC = gcc ;
HOST_C++ = g++ ;
}
if $(HOST_PLATFORM) = cygwin {
HOST_LINKFLAGS += -Xlinker --allow-multiple-definition -Xlinker
--enable-auto-import ;
@@ -674,6 +727,12 @@ if $(HOST_ARCH) = m68k {
HOST_KERNEL_PIC_LINKFLAGS = $(HAIKU_KERNEL_PIC_LINKFLAGS) ;
}
if $(HOST_PLATFORM) != darwin {
# fix for new changes to DSO linking policies
HOST_LINKFLAGS += -Xlinker --no-as-needed ;
}
# warning flags
HOST_WARNING_CCFLAGS = -Wall -Wno-trigraphs -Wmissing-prototypes -Wpointer-arith
-Wcast-align -Wsign-compare ;
@@ -768,9 +827,10 @@ if $(HOST_PLATFORM_BEOS_COMPATIBLE) {
# compatibility library
HOST_HAIKU_COMPATIBILITY_LIBS = libhaikucompat.a ;
} else {
HOST_LINKFLAGS += -lm ;
HOST_LIBSTDC++ = stdc++ ;
HOST_LIBROOT = libroot_build_function_remapper.a libroot_build.so ;
HOST_STATIC_LIBROOT = libroot_build.a ;
HOST_STATIC_LIBROOT = libroot_build_function_remapper.a libroot_build.a ;
HOST_LIBBE = libbe_build.so ;
if $(HOST_PLATFORM) = cygwin {
HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR
@@ -899,6 +959,7 @@ if ! $(HOST_PLATFORM_BEOS_COMPATIBLE) {
[ FDirName $(HAIKU_TOP) headers build os drivers ]
[ FDirName $(HAIKU_TOP) headers build os kernel ]
[ FDirName $(HAIKU_TOP) headers build os interface ]
[ FDirName $(HAIKU_TOP) headers build os locale ]
[ FDirName $(HAIKU_TOP) headers build os opengl ]
[ FDirName $(HAIKU_TOP) headers build os storage ]
[ FDirName $(HAIKU_TOP) headers build os support ]
@@ -937,9 +998,9 @@ if $(TARGET_PLATFORM) != haiku {
# specified TARGET_PLATFORM.
local buildVars =
ARCH CPU GCC_VERSION
ARCH CPU GCC_VERSION KERNEL_ARCH
AR CC C++ LD OBJCOPY RANLIB
AR CC C++ LD OBJCOPY RANLIB ELFEDIT
INCLUDES_SEPARATOR LOCAL_INCLUDES_OPTION SYSTEM_INCLUDES_OPTION
@@ -948,7 +1009,8 @@ local buildVars =
KERNEL_DEFINES
KERNEL_CCFLAGS KERNEL_C++FLAGS
KERNEL_PIC_CCFLAGS KERNEL_PIC_LINKFLAGS
KERNEL_PIC_CCFLAGS KERNEL_PIC_LINKFLAGS KERNEL_ADDON_LINKFLAGS
BOOT_CCFLAGS BOOT_C++FLAGS BOOT_LINKFLAGS
WARNING_CCFLAGS WARNING_C++FLAGS
KERNEL_WARNING_CCFLAGS KERNEL_WARNING_C++FLAGS
@@ -985,6 +1047,11 @@ if $(TARGET_PLATFORM) = haiku {
TARGET_GCC_LIBGCC = $(HAIKU_GCC_LIBGCC) ;
TARGET_GCC_LIBGCC_OBJECTS = $(HAIKU_GCC_LIBGCC_OBJECTS) ;
TARGET_KERNEL_LIBGCC = $(HAIKU_KERNEL_LIBGCC) ;
TARGET_KERNEL_LIBSUPC++ = $(HAIKU_KERNEL_LIBSUPC++) ;
TARGET_BOOT_LIBGCC = $(HAIKU_BOOT_LIBGCC) ;
TARGET_BOOT_LIBSUPC++ = $(HAIKU_BOOT_LIBSUPC++) ;
TARGET_BOOT_PLATFORM ?= $(HAIKU_BOOT_PLATFORM) ;
TARGET_BOOT_BOARD ?= $(HAIKU_BOOT_BOARD) ;
@@ -1001,6 +1068,11 @@ if $(TARGET_PLATFORM) = haiku {
TARGET_GCC_LIBGCC = ;
TARGET_GCC_LIBGCC_OBJECTS = ;
TARGET_KERNEL_LIBGCC = ;
TARGET_KERNEL_LIBSUPC++ = ;
TARGET_BOOT_LIBGCC = ;
TARGET_BOOT_LIBSUPC++ = ;
TARGET_BOOT_PLATFORM = ;
TARGET_BOOT_BOARD = ;
@@ -1062,7 +1134,7 @@ if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) && $(TARGET_PLATFORM_BEOS_COMPATIBLE) {
if $(TARGET_PLATFORM) = libbe_test {
# headers and flags
TARGET_HDRS +=
[ PublicHeaders $(DOT) app drivers game interface kernel storage
[ PublicHeaders $(DOT) app drivers game interface kernel locale storage
support ]
[ PrivateHeaders $(DOT) ] ;
TARGET_DEFINES += __HAIKU__ ;
@@ -1187,22 +1259,20 @@ AUTO_SET_UP_CONFIG_VARIABLES +=
# enable -Werror for certain parts of the source tree
if $(HAIKU_GCC_VERSION[1]) = 2 {
rule EnableWerror dirTokens : scope {
AppendToConfigVar CCFLAGS : HAIKU_TOP $(dirTokens) : -Werror
: $(scope) ;
AppendToConfigVar C++FLAGS : HAIKU_TOP $(dirTokens) : -Werror
: $(scope) ;
}
} else {
HAIKU_WERRORFLAGS = ;
if $(HAIKU_GCC_VERSION[1]) >= 4 {
# -Wuninitialized gives too many false positives.
rule EnableWerror dirTokens : scope {
HAIKU_WERRORFLAGS = -Wno-error=uninitialized ;
# TODO: remove the -Wno-unused-but-set-variable option
HAIKU_WERRORFLAGS += -Wno-unused-but-set-variable ;
}
rule EnableWerror dirTokens : scope {
AppendToConfigVar CCFLAGS : HAIKU_TOP $(dirTokens)
: -Werror -Wno-error=uninitialized : $(scope) ;
: -Werror $(HAIKU_WERRORFLAGS) : $(scope) ;
AppendToConfigVar C++FLAGS : HAIKU_TOP $(dirTokens)
: -Werror -Wno-error=uninitialized : $(scope) ;
}
: -Werror $(HAIKU_WERRORFLAGS) : $(scope) ;
}
# Work-around for GCC 2 problem -- despite -Wno-multichar it reports
@@ -1224,7 +1294,7 @@ if $(HAIKU_NO_WERROR) != 1 {
# EnableWerror src add-ons accelerants nvidia ;
EnableWerror src add-ons accelerants nvidia_gpgpu ;
# EnableWerror src add-ons accelerants radeon ;
EnableWerror src add-ons accelerants radeon_hd ;
# EnableWerror src add-ons accelerants radeon_hd ;
EnableWerror src add-ons accelerants s3 ;
EnableWerror src add-ons accelerants skeleton ;
EnableWerror src add-ons accelerants vesa ;
@@ -1241,7 +1311,7 @@ if $(HAIKU_NO_WERROR) != 1 {
EnableWerror src add-ons kernel bus_managers agp_gart ;
EnableWerror src add-ons kernel bus_managers ata ;
EnableWerror src add-ons kernel bus_managers config_manager ;
EnableWerror src add-ons kernel bus_managers firewire ;
# EnableWerror src add-ons kernel bus_managers firewire ;
EnableWerror src add-ons kernel bus_managers isa ;
EnableWerror src add-ons kernel bus_managers pci ;
# EnableWerror src add-ons kernel bus_managers ps2 ; # gcc2
@@ -1281,6 +1351,7 @@ if $(HAIKU_NO_WERROR) != 1 {
EnableWerror src add-ons kernel file_systems layers ;
EnableWerror src add-ons kernel file_systems netfs ;
EnableWerror src add-ons kernel file_systems nfs ;
EnableWerror src add-ons kernel file_systems nfs4 ;
# EnableWerror src add-ons kernel file_systems ntfs ;
EnableWerror src add-ons kernel file_systems packagefs ;
EnableWerror src add-ons kernel file_systems ramfs ;
@@ -1290,6 +1361,7 @@ if $(HAIKU_NO_WERROR) != 1 {
EnableWerror src add-ons kernel generic ;
# EnableWerror src add-ons kernel network datalink_protocols ;
EnableWerror src add-ons kernel network devices ;
EnableWerror src add-ons kernel network dns_resolver ;
EnableWerror src add-ons kernel network notifications ;
EnableWerror src add-ons kernel network ppp ;
EnableWerror src add-ons kernel network protocols ;
@@ -1342,7 +1414,7 @@ if $(HAIKU_NO_WERROR) != 1 {
EnableWerror src add-ons translators bmp ;
# EnableWerror src add-ons translators exr ;
EnableWerror src add-ons translators gif ;
EnableWerror src add-ons translators hpgs ;
# EnableWerror src add-ons translators hpgs ;
EnableWerror src add-ons translators hvif ;
EnableWerror src add-ons translators ico ;
# EnableWerror src add-ons translators jpeg ; # gcc2
@@ -1354,10 +1426,10 @@ if $(HAIKU_NO_WERROR) != 1 {
EnableWerror src add-ons translators rtf ;
EnableWerror src add-ons translators sgi ;
EnableWerror src add-ons translators shared ;
EnableWerror src add-ons translators stxt ;
# EnableWerror src add-ons translators stxt ;
EnableWerror src add-ons translators tga ;
EnableWerror src add-ons translators tiff ;
EnableWerror src add-ons translators wonderbrush ;
# EnableWerror src add-ons translators wonderbrush ;
EnableWerror src add-ons print ;
EnableWerror src bin package ;
EnableWerror src apps ;
@@ -1365,6 +1437,24 @@ if $(HAIKU_NO_WERROR) != 1 {
EnableWerror src preferences ;
EnableWerror src servers ;
EnableWerror src system kernel ;
EnableWerror src system libroot add-ons ;
EnableWerror src system libroot posix locale ;
EnableWerror src system libroot posix wchar ;
EnableWerror src system runtime_loader ;
}
# The following directories cannot currently be compiled with DEBUG=1
SetConfigVar DEBUG : HAIKU_TOP src add-ons disk_systems bfs : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src add-ons kernel drivers audio hda : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src add-ons kernel drivers audio ac97 auich : 0 : local ; # fails with gcc4 only
SetConfigVar DEBUG : HAIKU_TOP src add-ons kernel drivers audio ac97 auvia : 0 : local ; # fails with gcc4 only
SetConfigVar DEBUG : HAIKU_TOP src add-ons kernel drivers audio ac97 sis7018 : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src add-ons kernel file_systems btrfs : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src add-ons kernel file_systems ntfs libntfs : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src add-ons kernel file_systems udf : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src add-ons media media-add-ons dvb : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src add-ons print drivers gutenprint : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src servers input : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src servers media_addon : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src system boot loader file_systems bfs : 0 : local ;
SetConfigVar DEBUG : HAIKU_TOP src system boot loader file_systems tarfs : 0 : local ;
+4 -1
View File
@@ -199,7 +199,7 @@ rule ExtractArchive directory : entries : archiveFile : grist
# <directory> and <archiveFile> combo.
#
# <directory> - The directory into which to extract the archive file. The
# directory is created is by this rule and it is the target
# directory is created by this rule and it is the target
# that the extract action is associated with.
# <entries> - The entries of the archive file one is interested in. The
# rule always extracts the complete archive file, from the
@@ -246,6 +246,9 @@ rule ExtractArchive directory : entries : archiveFile : grist
ExtractHPKGArchive1 $(directory)
: <build>package $(archiveFile) ;
case "" :
Exit "ExtractArchive: No archive passed" ;
case * :
Exit "ExtractArchive: Unhandled archive extension:"
"$(archiveFile:S)" ;
+84 -61
View File
@@ -1,29 +1,8 @@
# This file defines what ends up in the floppy boot image and it executes the
# rules building the image.
local X86_ONLY = ;
local PPC_ONLY = ;
if $(TARGET_ARCH) = x86 {
X86_ONLY = "" ;
} else if $(TARGET_ARCH) = ppc {
X86_ONLY = ;
} else if $(TARGET_ARCH) = m68k {
X86_ONLY = ;
}
local GPL_ONLY = ;
if $(HAIKU_INCLUDE_GPL_ADDONS) = 1 {
GPL_ONLY = "" ;
}
#HACK: remove when old ide code is removed!
local ATA_ONLY = ;
local IDE_ONLY = ;
if $(HAIKU_ATA_STACK) = 1 {
ATA_ONLY = "" ;
} else {
IDE_ONLY = "" ;
}
local NET_BOOT = 0 ;
local USB_BOOT = 1 ;
@@ -46,51 +25,84 @@ if $(NET_BOOT) = 1 {
;
}
SYSTEM_ADD_ONS_BUS_MANAGERS = $(X86_ONLY)acpi $(ATA_ONLY)ata config_manager dpc pci
$(IDE_ONLY)ide $(X86_ONLY)isa scsi $(USB_ONLY)usb
;
SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures
acpi@x86 ata@ata config_manager dpc pci
ide@ide isa@x86 scsi $(USB_ONLY)usb
] ;
SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs iso9660 attribute_overlay write_overlay ;
# modules
AddFilesToFloppyBootArchive system add-ons kernel bus_managers
: $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;
AddFilesToFloppyBootArchive system add-ons kernel busses ide
: generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 legacy_sata it8211 ;
AddFilesToFloppyBootArchive system add-ons kernel busses scsi
if $(TARGET_ARCH) = x86_64 {
AddFilesToFloppyBootArchive system add-ons kernel bus_managers
: ata config_manager dpc pci isa scsi $(USB_ONLY)usb ;
AddFilesToFloppyBootArchive system add-ons kernel busses ata
: generic_ide_pci legacy_sata ;
AddFilesToFloppyBootArchive system add-ons kernel busses scsi
: ahci ;
AddFilesToFloppyBootArchive system add-ons kernel console
: vga_text ;
AddFilesToFloppyBootArchive system add-ons kernel file_systems
AddFilesToFloppyBootArchive system add-ons kernel file_systems
: $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
AddFilesToFloppyBootArchive system add-ons kernel generic
: $(ATA_ONLY)ata_adapter $(IDE_ONLY)ide_adapter locked_pool scsi_periph ;
AddFilesToFloppyBootArchive
system add-ons kernel partitioning_systems
AddFilesToFloppyBootArchive system add-ons kernel generic
: ata_adapter locked_pool scsi_periph ;
AddFilesToFloppyBootArchive system add-ons kernel partitioning_systems
: intel session ;
AddFilesToFloppyBootArchive
system add-ons kernel interrupt_controllers
: $(PPC_ONLY)openpic ;
if $(USB_BOOT) = 1 {
AddFilesToFloppyBootArchive
system add-ons kernel busses usb
if $(USB_BOOT) = 1 {
AddFilesToFloppyBootArchive system add-ons kernel busses usb
: <usb>uhci <usb>ohci <usb>ehci ;
}
}
if $(TARGET_ARCH) = x86 {
AddFilesToFloppyBootArchive system add-ons kernel cpu
: generic_x86 ;
}
AddFilesToFloppyBootArchive system add-ons kernel cpu : generic_x86 ;
# drivers
AddNewDriversToFloppyBootArchive disk scsi : scsi_cd scsi_disk ;
if $(USB_BOOT) = 1 {
AddNewDriversToFloppyBootArchive disk scsi : scsi_cd scsi_disk ;
if $(USB_BOOT) = 1 {
AddDriversToFloppyBootArchive disk usb : usb_disk ;
}
if $(NET_BOOT) = 1 {
}
} else {
# modules
AddFilesToFloppyBootArchive system add-ons kernel bus_managers
: $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;
if $(HAIKU_ATA_STACK) = 1 {
AddFilesToFloppyBootArchive system add-ons kernel busses ata
: generic_ide_pci ide_isa@x86 silicon_image_3112 legacy_sata
it8211 ;
} else {
AddFilesToFloppyBootArchive system add-ons kernel busses ide
: generic_ide_pci ide_isa@x86 silicon_image_3112 legacy_sata
it8211 ;
}
AddFilesToFloppyBootArchive system add-ons kernel busses scsi
: ahci ;
AddFilesToFloppyBootArchive system add-ons kernel console : vga_text ;
AddFilesToFloppyBootArchive system add-ons kernel file_systems
: $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
AddFilesToFloppyBootArchive system add-ons kernel generic
: ata_adapter@ata ide_adapter@ide locked_pool scsi_periph ;
AddFilesToFloppyBootArchive system add-ons kernel partitioning_systems
: intel session ;
AddFilesToFloppyBootArchive system add-ons kernel interrupt_controllers
: openpic@ppc ;
if $(USB_BOOT) = 1 {
AddFilesToFloppyBootArchive system add-ons kernel busses usb
: <usb>uhci <usb>ohci <usb>ehci ;
}
if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 {
AddFilesToFloppyBootArchive system add-ons kernel cpu : generic_x86 ;
}
# drivers
AddNewDriversToFloppyBootArchive disk scsi : scsi_cd scsi_disk ;
AddNewDriversToFloppyBootArchive disk : norflash@arm ;
if $(USB_BOOT) = 1 {
AddDriversToFloppyBootArchive disk usb : usb_disk ;
}
if $(NET_BOOT) = 1 {
AddDriversToFloppyBootArchive disk virtual : remote_disk ;
AddDriversToFloppyBootArchive net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ;
}
}
# kernel
@@ -124,19 +136,30 @@ if $(NET_BOOT) = 1 {
}
# boot module links
AddBootModuleSymlinksToFloppyBootArchive
$(SYSTEM_ADD_ONS_BUS_MANAGERS)
$(PPC_ONLY)openpic
$(ATA_ONLY)ata_adapter $(IDE_ONLY)ide_adapter locked_pool scsi_periph
$(X86_ONLY)generic_x86
ahci generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 legacy_sata
it8211
if $(TARGET_ARCH) = x86_64 {
AddBootModuleSymlinksToFloppyBootArchive
ata dpc config_manager pci scsi $(USB_ONLY)usb ata_adapter locked_pool
scsi_periph generic_x86 ahci generic_ide_pci legacy_sata
$(USB_ONLY)<usb>uhci $(USB_ONLY)<usb>ohci $(USB_ONLY)<usb>ehci
scsi_cd scsi_disk $(USB_ONLY)usb_disk
intel session
$(SYSTEM_ADD_ONS_FILE_SYSTEMS)
;
} else {
AddBootModuleSymlinksToFloppyBootArchive
$(SYSTEM_ADD_ONS_BUS_MANAGERS)
openpic@ppc
ata_adapter@ata ide_adapter@ide locked_pool scsi_periph
generic_x86@x86
ahci generic_ide_pci ide_isa@x86 silicon_image_3112 legacy_sata
it8211
$(USB_ONLY)<usb>uhci $(USB_ONLY)<usb>ohci $(USB_ONLY)<usb>ehci
scsi_cd scsi_disk $(USB_ONLY)usb_disk norflash@arm
intel session
$(SYSTEM_ADD_ONS_FILE_SYSTEMS)
$(BOOT_ADD_ONS_NET)
;
;
}
#pragma mark - Build The Archive
-85
View File
@@ -1,85 +0,0 @@
#-------------------------------------------------------------------------------
# FreeType 2 specific rules and variables
#-------------------------------------------------------------------------------
FT2_INCLUDE = [ FDirName $(HAIKU_TOP) headers libs freetype2 ] ;
FT2_SRC = [ FDirName $(HAIKU_TOP) src libs freetype2 ] ;
FT2_LIB = freetype ;
FT2_COMPONENTS ?= gzip # support for gzip-compressed files.
autofit
base # base component (public APIs)
bdf # BDF font driver
cache # cache sub-system
cff # CFF/CEF font driver
cid # Postscript CID-keyed font driver
lzw # LZW routines
pcf # PCF font driver
pfr # PFR/TrueDoc font driver
psaux # Common Postscript routines module
pshinter # Postscript hinter module
psnames # Postscript names handling
raster # Monochrome rasterizer
smooth # Anti-aliased rasterizer
sfnt # SFNT-based format support routines
truetype # TrueType font driver
type1 # Postscript Type 1 font driver
type42 # Postscript Type 42 (embedded TrueType) driver
winfonts # Windows FON/FNT font driver
;
rule UseFreeTypeHeaders
{
SubDirSysHdrs $(FT2_INCLUDE) ;
}
rule UseFreeTypeObjectHeaders
{
# UseFreeTypeObjectHeaders <sources> [ : <objects> ] ;
SourceSysHdrs $(1) : $(FT2_INCLUDE) : $(2) ;
}
rule FT2_SubDir
{
# FT2_SubDir <dir>
# <dir>: Components of a directory in the original hierarchy.
local dir = $(1) ;
local topDir ;
switch $(dir[1])
{
case "include" : topDir = $(FT2_INCLUDE) ;
case src : topDir = $(FT2_SRC) ;
case * : ECHO "Unknown FreeType2 directory: " $(dir) ;
}
return [ FDirName $(topDir) $(dir[2-]) ] ;
}
rule FT2_Library
{
# FT2_Library <libname> : <sources>
# Builds objects from sources and adds the objects to the list of objects
# to be linked into the library.
# <libname> The name of the library.
# <sources> The sources.
DEFINES += FT2_BUILD_LIBRARY ;
local library = lib$(1).so ;
local sources = $(2) ;
Objects $(sources) ;
LIBRARY_OBJECTS on $(library) += [ FGristFiles $(sources:S=$(SUFOBJ)) ] ;
}
rule FT2_LinkLibrary
{
# FT2_LinkLibrary <libname>
# Links the library from the objects build with FT2_LIBRARY before.
local library = lib$(1).so ;
local objects = [ on $(library) return $(LIBRARY_OBJECTS) ] ;
ObjectReferences $(objects) ;
objects = [ FGristFiles $(objects) ] ;
SharedLibraryFromObjects $(library) : $(objects) ;
}
+626
View File
@@ -0,0 +1,626 @@
# This file defines what ends up on the Haiku image (respectively in the Haiku
# installation directory) and it executes the rules building the image
# (respectively installing the files in the installation directory).
# This is only temporary while x86_64 is still a work in progress, so I can
# easily add things to the image as I port them.
SYSTEM_BIN = "["
addattr alert arp
base64 basename bash bc beep
cal cat catattr checkfs chgrp chmod chown chroot cksum clear clockconfig
cmp collectcatkeys comm compress copyattr CortexAddOnHost cp csplit cut
date dd diff diff3 dircolors dirname df du dumpcatalog
echo eject env error expand expr
factor false find finddir FirstBootPrompt fmt fold fortune ftp
gawk gdb gzip gzexe getlimits groups
head hostname
id ifconfig <bin>install isvolume
join
kernel_debugger kill
less lessecho lesskey link linkcatkeys listdev ln locale locate logger
logname ls
makebootable md5sum mimeset mkdir mkfifo mkfs mktemp mount mountvolume mv
nl nohup notify nproc
od open
paste patch pathchk ping pr printenv printf ps ptx pwd
query
rc readlink rm rmattr rmdir
safemode sdiff seq sha1sum shred shuf shutdown sleep sort split stat
strace stty su sum sync sysinfo
tac tail tee test timeout touch tr true truncate tsort tty
unexpand uname uniq unlink unmount unzip <bin>updatedb
waitfor wc wget whoami
xargs xres
yes
zdiff zforce zgrep zip zipcloak <bin>zipgrep zipnote zipsplit zmore znew
;
SYSTEM_APPS = AboutSystem ActivityMonitor CDPlayer CharacterMap Debugger DeskCalc
Devices DiskUsage DriveSetup Expander Installer LaunchBox MediaConverter
NetworkStatus PoorMan Pulse ProcessController Screenshot ShowImage
SoundRecorder StyledEdit Terminal TV Workspaces
;
SYSTEM_PREFERENCES = Appearance Backgrounds DataTranslations <preference>Deskbar
FileTypes Keyboard Keymap Locale Media Mouse Network Notifications
Printers Screen ScreenSaver Time Touchpad <preference>Tracker
VirtualMemory
;
SYSTEM_DEMOS = BSnow Cortex FontDemo OverlayImage Pairs Sudoku ;
SYSTEM_LIBS = libbe.so libbsd.so libbnetapi.so libgame.so libdebug.so libmedia.so
libmidi2.so libnetwork.so <revisioned>libroot.so libroot-addon-icu.so
libtextencoding.so libtiff.so libtracker.so libtranslation.so
$(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++)
;
PRIVATE_SYSTEM_LIBS =
$(HAIKU_JPEG_CURRENT_LIB)
$(HAIKU_LIBPNG_CURRENT_LIB)
$(HAIKU_ZLIB_CURRENT_LIB)
$(HAIKU_FREETYPE_CURRENT_LIB)
libilmimf.so
;
SYSTEM_SERVERS = app_server cddb_daemon debug_server input_server midi_server
mount_server net_server notification_server power_daemon print_server
print_addon_server registrar syslog_daemon dns_resolver_server
nfs4_idmapper_server
;
SYSTEM_NETWORK_DEVICES = ethernet loopback ;
SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame
ipv6_datagram ;
SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix icmp6 ipv6 ;
SYSTEM_ADD_ONS_ACCELERANTS = vesa.accelerant ;
SYSTEM_ADD_ONS_TRANSLATORS = BMPTranslator EXRTranslator GIFTranslator
HVIFTranslator ICOTranslator JPEGTranslator JPEG2000Translator
PCXTranslator PNGTranslator PPMTranslator
RAWTranslator RTFTranslator SGITranslator STXTTranslator TGATranslator
TIFFTranslator WebPTranslator WonderBrushTranslator
;
SYSTEM_ADD_ONS_PRINT =
Canon\ LIPS3\ Compatible
Canon\ LIPS4\ Compatible
Gutenprint
PCL5\ Compatible
PCL6\ Compatible
PDF\ Writer
PS\ Compatible
;
SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = vesa ;
SYSTEM_ADD_ONS_DRIVERS_NET = 3com atheros813x ar81xx attansic_l1 attansic_l2
broadcom440x broadcom570x dec21xxx etherpci ipro100 ipro1000 jmicron2x0
marvell_yukon nforce pcnet pegasus rtl8139 rtl81xx sis19x sis900 syskonnect
via_rhine wb840
;
SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures
ata@ata pci ps2 isa scsi config_manager usb
] ;
SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs iso9660 nfs4 attribute_overlay write_overlay ;
# modules
AddFilesToHaikuImage system add-ons kernel bus_managers
: $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;
if $(HAIKU_ATA_STACK) = 1 {
AddFilesToHaikuImage system add-ons kernel busses ata
: generic_ide_pci legacy_sata ;
}
AddFilesToHaikuImage system add-ons kernel busses scsi
: ahci ;
AddFilesToHaikuImage system add-ons kernel busses usb
: <usb>uhci <usb>ohci <usb>ehci ;
AddFilesToHaikuImage system add-ons kernel debugger
: <kdebug>demangle <kdebug>invalidate_on_exit <kdebug>usb_keyboard ;
AddFilesToHaikuImage system add-ons kernel file_systems
: $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
AddFilesToHaikuImage system add-ons kernel generic
: ata_adapter@ata bios dpc locked_pool scsi_periph <module>tty ;
AddFilesToHaikuImage system add-ons kernel partitioning_systems
: intel session ;
AddFilesToHaikuImage system add-ons kernel cpu : generic_x86 ;
# drivers
AddNewDriversToHaikuImage disk scsi : scsi_cd scsi_disk ;
# legacy drivers
AddDriversToHaikuImage : console dprintf null
random <driver>tty zero ;
AddDriversToHaikuImage graphics : $(SYSTEM_ADD_ONS_DRIVERS_GRAPHICS) ;
AddDriversToHaikuImage disk usb : usb_disk ;
AddDriversToHaikuImage input : ps2_hid usb_hid ;
AddDriversToHaikuImage net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ;
# kernel
AddFilesToHaikuImage system : <revisioned>kernel_$(TARGET_ARCH) ;
# libs
AddLibrariesToHaikuHybridImage system lib
: $(SYSTEM_LIBS) $(PRIVATE_SYSTEM_LIBS) ;
OPTIONAL_LIBS_ALIASES =
libfreetype.so
libjpeg.so
libpng.so
libz.so
;
# libfreetype.so links to the current freetype lib
AddSymlinkToHaikuHybridImage system lib : $(HAIKU_FREETYPE_CURRENT_LIB:BS)
: $(HAIKU_FREETYPE_CURRENT_LINK) : : true ;
AddSymlinkToHaikuHybridImage system lib : $(HAIKU_FREETYPE_CURRENT_LINK)
: libfreetype.so : : true ;
# libpng.so links to the current libpng
AddSymlinkToHaikuHybridImage system lib : $(HAIKU_LIBPNG_CURRENT_LIB:BS)
: $(HAIKU_LIBPNG_CURRENT_LINK) : : true ;
AddSymlinkToHaikuHybridImage system lib : $(HAIKU_LIBPNG_CURRENT_LINK)
: libpng.so : : true ;
# libjpeg.so links to the current libjpeg
AddSymlinkToHaikuHybridImage system lib : $(HAIKU_JPEG_CURRENT_LIB:BS)
: $(HAIKU_JPEG_CURRENT_LINK) : : true ;
AddSymlinkToHaikuHybridImage system lib : $(HAIKU_JPEG_CURRENT_LINK)
: libjpeg.so : : true ;
# zlib.so links to the current zlib
AddSymlinkToHaikuHybridImage system lib : $(HAIKU_ZLIB_CURRENT_LIB:BS)
: $(HAIKU_ZLIB_CURRENT_LINK) : : true ;
AddSymlinkToHaikuHybridImage system lib : $(HAIKU_ZLIB_CURRENT_LINK)
: libz.so : : true ;
# servers
AddFilesToHaikuImage system servers : $(SYSTEM_SERVERS) ;
# apps
AddFilesToHaikuImage system : runtime_loader Deskbar Tracker ;
AddFilesToHaikuImage system bin : $(SYSTEM_BIN) consoled ;
AddFilesToHaikuImage system apps : $(SYSTEM_APPS) ;
AddFilesToHaikuImage system preferences : $(SYSTEM_PREFERENCES) ;
AddFilesToHaikuImage system demos : $(SYSTEM_DEMOS) ;
SEARCH on which = [ FDirName $(HAIKU_TOP) data bin ] ;
AddFilesToHaikuImage system bin : which ;
SEARCH on installoptionalpackage = [ FDirName $(HAIKU_TOP) data bin ] ;
AddFilesToHaikuImage system bin : installoptionalpackage ;
SEARCH on install-wifi-firmwares.sh = [ FDirName $(HAIKU_TOP) data bin ] ;
AddFilesToHaikuImage system bin : install-wifi-firmwares.sh ;
# Add the files to be used by installoptionalpackage.
AddDirectoryToHaikuImage common data optional-packages ;
local optional-pkg-files = BuildFeatures OptionalPackageDependencies
OptionalPackages OptionalLibPackages ;
for name in $(optional-pkg-files) {
local file = [ FDirName $(HAIKU_TOP) build jam $(name) ] ;
AddFilesToHaikuImage common data optional-packages : $(file) ;
}
AddInstalledPackagesFileToHaikuImage ;
AddSymlinkToHaikuImage system bin : bash : sh ;
AddSymlinkToHaikuImage system bin : trash : untrash ;
AddSymlinkToHaikuImage home Desktop : /boot/home : Home ;
# Mailbox folders and symlink
AddDirectoryToHaikuImage home mail draft ;
AddDirectoryToHaikuImage home mail in ;
AddDirectoryToHaikuImage home mail out ;
AddSymlinkToHaikuImage home config : settings/deskbar : be ;
# Deskbar Application links
AddDirectoryToHaikuImage home config settings deskbar Applications ;
DESKBAR_APPLICATIONS = ActivityMonitor DriveSetup Installer StyledEdit
Terminal ;
local linkTarget ;
for linkTarget in $(DESKBAR_APPLICATIONS) {
AddSymlinkToHaikuImage home config settings deskbar Applications
: /boot/system/apps/$(linkTarget) : $(linkTarget) ;
}
# Deskbar Desktop applets links
AddDirectoryToHaikuImage home config settings deskbar Desktop\ applets ;
DESKBAR_DESKTOP_APPLETS = NetworkStatus ProcessController ;
for linkTarget in $(DESKBAR_DESKTOP_APPLETS) {
AddSymlinkToHaikuImage home config settings deskbar Desktop\ applets
: /boot/system/apps/$(linkTarget) : $(linkTarget) ;
}
# Deskbar Preferences links
AddDirectoryToHaikuImage home config settings deskbar Preferences ;
DESKBAR_PREFERENCES = $(SYSTEM_PREFERENCES:B) ;
for linkTarget in $(DESKBAR_PREFERENCES) {
AddSymlinkToHaikuImage home config settings deskbar Preferences
: /boot/system/preferences/$(linkTarget)
: $(linkTarget) ;
}
# Deskbar Demo links
AddDirectoryToHaikuImage home config settings deskbar Demos ;
for linkTarget in $(SYSTEM_DEMOS) {
AddSymlinkToHaikuImage home config settings deskbar Demos
: /boot/system/demos/$(linkTarget) : $(linkTarget) ;
}
AddSymlinkToHaikuImage system bin : less : more ;
AddSymlinkToHaikuImage system bin : gzip : gunzip ;
AddSymlinkToHaikuImage system bin : gzip : zcat ;
AddSymlinkToHaikuImage system bin : zdiff : zcmp ;
AddSymlinkToHaikuImage system bin : unzip : zipinfo ;
AddSymlinkToHaikuImage system bin : gawk : awk ;
# scripts and data files
local bootScripts = Bootscript Bootscript.cd SetupEnvironment Netscript
InstallerInitScript InstallerFinishScript ;
SEARCH on $(bootScripts) = [ FDirName $(HAIKU_TOP) data system boot ] ;
AddFilesToHaikuImage system boot : $(bootScripts) ;
local userBootScripts = UserBootscript UserSetupEnvironment.sample ;
SEARCH on $(userBootScripts) = [ FDirName $(HAIKU_TOP) data config boot ] ;
AddFilesToHaikuImage home config boot : $(userBootScripts) ;
# Add boot launch directory
AddDirectoryToHaikuImage home config boot launch ;
local logoArtwork =
$(HAIKU_INCLUDE_TRADEMARKS)"HAIKU logo - white on blue - big.png"
$(HAIKU_INCLUDE_TRADEMARKS)"HAIKU logo - white on blue - normal.png" ;
SEARCH on $(logoArtwork) = [ FDirName $(HAIKU_TOP) data artwork ] ;
AddFilesToHaikuImage system data artwork : $(logoArtwork) ;
local etcDir = [ FDirName $(HAIKU_TOP) data etc ] ;
local etcFiles = inputrc profile ;
etcFiles = $(etcFiles:G=etc) ;
SEARCH on $(etcFiles) = [ FDirName $(etcDir) ] ;
etcFiles += <etc>termcap <etc>sysless <etc>sysless.in ;
AddFilesToHaikuImage common etc : $(etcFiles) ;
local profileFiles = [ Glob $(etcDir)/profile.d : *.sh ] ;
profileFiles = $(profileFiles:G=profile-d) ;
AddDirectoryToHaikuImage common etc profile.d ;
AddFilesToHaikuImage common etc profile.d : $(profileFiles) ;
local fortuneFiles = [ Glob $(HAIKU_TOP)/data/system/data/fortunes
: [a-zA-Z0-9]* ] ;
fortuneFiles = $(fortuneFiles:G=data!fortunes) ;
AddFilesToHaikuImage system data fortunes : $(fortuneFiles) ;
local fontDir = [ FDirName $(HAIKU_TOP) data system data fonts ] ;
local psFonts = [ Glob $(fontDir)/psfonts : *.afm *.pfb ] ;
local ttFonts = [ Glob $(fontDir)/ttfonts : *.ttf ] ;
AddFilesToHaikuImage system data fonts psfonts : $(psFonts) ;
AddFilesToHaikuImage system data fonts ttfonts : $(ttFonts) ;
local keymapFiles = [ Glob [ FDirName $(HAIKU_TOP) src data keymaps ]
: *.keymap ] ;
keymapFiles = $(keymapFiles:BG=keymap) ;
AddFilesToHaikuImage system data Keymaps : $(keymapFiles) ;
AddSymlinkToHaikuImage system data Keymaps : Swedish : Finnish ;
AddSymlinkToHaikuImage system data Keymaps : Slovene : Croatian ;
AddSymlinkToHaikuImage system data Keymaps : US-International : Brazilian ;
# Copy keyboard layout files to the image one-by-one.
local keyboardLayoutsDir
= [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ] ;
local keyboardLayoutFiles =
"Generic 104-key"
"Generic 105-key International"
"Kinesis Advantage"
"Kinesis Ergo Elan International"
"TypeMatrix 2030" ;
keyboardLayoutFiles = $(keyboardLayoutFiles:G=keyboard-layout) ;
SEARCH on $(keyboardLayoutFiles) = $(keyboardLayoutsDir) ;
AddFilesToHaikuImage system data KeyboardLayouts
: $(keyboardLayoutFiles) ;
# Add Apple Aluminum keyboard layout files to the image in an Apple Aluminum
# subdirectory. The subdirectory is turned into a submenu in the Layout menu
# of the Keymap preference app.
local appleAluminumDir
= [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts
Apple\ Aluminum ] ;
local appleAluminumFiles =
"Apple Aluminium Extended International"
"Apple Aluminium International"
"Apple Aluminum (US)"
"Apple Aluminum Extended (US)" ;
appleAluminumFiles = $(appleAluminumFiles:G=keyboard-layout) ;
SEARCH on $(appleAluminumFiles) = $(appleAluminumDir) ;
AddFilesToHaikuImage system data KeyboardLayouts Apple\ Aluminum
: $(appleAluminumFiles) ;
# Add ThinkPad keyboard layout files to the image in a ThinkPad
# subdirectory. The subdirectory is turned into a submenu in the Layout menu
# of the Keymap preference app.
local thinkpadDir
= [ FDirName $(HAIKU_TOP) data system data KeyboardLayouts ThinkPad ] ;
local thinkPadFiles =
"ThinkPad (US)"
"ThinkPad International"
"ThinkPad T400s (US)"
"ThinkPad T400s International"
"ThinkPad X1 (US)"
"ThinkPad X1 International"
"ThinkPad X100e (US)"
"ThinkPad X100e International" ;
thinkPadFiles = $(thinkPadFiles:G=keyboard-layout) ;
SEARCH on $(thinkPadFiles) = $(thinkpadDir) ;
AddFilesToHaikuImage system data KeyboardLayouts ThinkPad
: $(thinkPadFiles) ;
local driverSettingsFiles = <driver-settings>kernel ;
SEARCH on $(driverSettingsFiles)
= [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ;
AddFilesToHaikuImage home config settings kernel drivers
: $(driverSettingsFiles) ;
# post install scripts and fresh install indicator file
local postInstallFiles = add_catalog_entry_attributes.sh
default_deskbar_items.sh mime_update.sh ;
postInstallFiles = $(postInstallFiles:G=post-install) ;
SEARCH on $(postInstallFiles)
= [ FDirName $(HAIKU_TOP) data common boot post_install ] ;
SEARCH on <post-install>fresh_install
= [ FDirName $(HAIKU_TOP) data common settings ] ;
AddFilesToHaikuImage common boot post_install : $(postInstallFiles) ;
AddFilesToHaikuImage common settings : <post-install>fresh_install ;
# boot loader
AddFilesToHaikuImage system : haiku_loader ;
# boot module links
AddBootModuleSymlinksToHaikuImage
ata@ata pci config_manager dpc scsi usb ata_adapter@ata
locked_pool scsi_periph ahci generic_ide_pci legacy_sata
<usb>uhci <usb>ohci <usb>ehci
scsi_cd scsi_disk usb_disk
intel
bfs
;
# add-ons
AddFilesToHaikuImage system add-ons accelerants
: $(SYSTEM_ADD_ONS_ACCELERANTS) ;
AddFilesToHaikuHybridImage system add-ons Translators
: $(SYSTEM_ADD_ONS_TRANSLATORS) : : true ;
AddFilesToHaikuImage system add-ons input_server devices
: <input>keyboard <input>mouse <input>tablet <input>wacom ;
AddFilesToHaikuImage system add-ons kernel network
: <net>notifications stack ;
AddFilesToHaikuImage system add-ons kernel network : dns_resolver ;
AddFilesToHaikuImage system add-ons kernel network devices
: $(SYSTEM_NETWORK_DEVICES) ;
AddFilesToHaikuImage system add-ons kernel network datalink_protocols
: $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ;
AddFilesToHaikuImage system add-ons kernel network protocols
: $(SYSTEM_NETWORK_PROTOCOLS) ;
AddFilesToHaikuImage system add-ons disk_systems
: <disk_system>intel <disk_system>bfs ;
# create directories that will remain empty
AddDirectoryToHaikuImage common bin ;
AddDirectoryToHaikuImage common include ;
AddDirectoryToHaikuImage common lib ;
AddDirectoryToHaikuImage home Desktop ;
AddDirectoryToHaikuImage home config bin ;
AddDirectoryToHaikuImage home config lib ;
AddDirectoryToHaikuImage home mail ;
AddDirectoryToHaikuImage common var empty ;
AddDirectoryToHaikuImage common var log ;
AddDirectoryToHaikuImage common cache tmp ;
AddDirectoryToHaikuImage home config add-ons kernel drivers bin ;
AddDirectoryToHaikuImage home config add-ons kernel drivers dev ;
AddDirectoryToHaikuImage home config add-ons input_server devices ;
AddDirectoryToHaikuImage home config add-ons input_server filters ;
AddDirectoryToHaikuImage home config add-ons input_server methods ;
AddDirectoryToHaikuImage home config add-ons media plugins ;
AddDirectoryToHaikuImage home config add-ons Tracker ;
AddDirectoryToHaikuImage home config add-ons Print ;
AddDirectoryToHaikuImage home config add-ons Screen\ Savers ;
AddDirectoryToHaikuImage home config add-ons Translators ;
AddDirectoryToHaikuImage system data synth ;
AddDirectoryToHaikuImage system add-ons input_server methods ;
# licenses
CopyDirectoryToHaikuImage system data
: [ FDirName $(HAIKU_TOP) data system data licenses ]
: licenses : -x .svn ;
# Copy documentation as per DiskUsage's license requirement.
CopyDirectoryToHaikuImage system documentation
: [ FDirName $(HAIKU_TOP) docs apps diskusage ]
: diskusage : -x .svn ;
#pragma mark - Optional Packages
HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS = ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackages ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalTestPackages ] ;
include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalLibPackages ] ;
local optionalPackageDescriptions ;
if $(HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS) {
optionalPackageDescriptions = <haiku-image>optional_package_descriptions ;
MakeLocate $(optionalPackageDescriptions)
: $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ;
Depends $(optionalPackageDescriptions)
: $(HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS) ;
actions together BuildOptionalPackageDescriptions
{
cat $(2) > $(1)
}
BuildOptionalPackageDescriptions $(optionalPackageDescriptions)
: $(HAIKU_IMAGE_OPTIONAL_PACKAGE_DESCRIPTIONS) ;
}
#pragma mark - User/Group Setup
# add the root user and the root and users groups
AddUserToHaikuImage $(HAIKU_ROOT_USER_NAME:E=baron) : 0 : 0 : /boot/home
: /bin/bash : $(HAIKU_ROOT_USER_REAL_NAME:E="Root User") ;
AddGroupToHaikuImage root : 0 : ;
AddGroupToHaikuImage users : 100 : ;
#pragma mark - Host Name
if $(HAIKU_IMAGE_HOST_NAME) {
actions BuildHaikuImageHostnameFile
{
echo "$(HAIKU_IMAGE_HOST_NAME)" > $(1)
}
local file = <haiku-image>hostname ;
Always $(file) ;
MakeLocate $(file) : $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) ;
BuildHaikuImageHostnameFile $(file) ;
AddFilesToHaikuImage common settings network : $(file) ;
}
#pragma mark - Build The Image
# Execute pre-image user config rules.
UserBuildConfigRulePreImage ;
# Set image name and directory defaults and locate the image.
HAIKU_IMAGE_NAME ?= $(HAIKU_DEFAULT_IMAGE_NAME) ;
HAIKU_IMAGE_DIR ?= $(HAIKU_DEFAULT_IMAGE_DIR) ;
HAIKU_IMAGE = $(HAIKU_IMAGE_NAME) ;
HAIKU_IMAGE_SIZE ?= $(HAIKU_DEFAULT_IMAGE_SIZE) ; # 300 MB
HAIKU_IMAGE_LABEL ?= $(HAIKU_DEFAULT_IMAGE_LABEL) ;
MakeLocate $(HAIKU_IMAGE) : $(HAIKU_IMAGE_DIR) ;
# Set the default installation directory.
HAIKU_INSTALL_DIR ?= $(HAIKU_DEFAULT_INSTALL_DIR) ;
# the pseudo target all image contents is attached to
NotFile $(HAIKU_IMAGE_CONTAINER_NAME) ;
# prepare the script that initializes the shell variables
HAIKU_IMAGE_INIT_VARIABLES_SCRIPT = <HaikuImage>haiku.image-init-vars ;
local script = $(HAIKU_IMAGE_INIT_VARIABLES_SCRIPT) ;
MakeLocate $(script) : $(HAIKU_OUTPUT_DIR) ;
Always $(script) ;
AddVariableToScript $(script) : sourceDir : $(HAIKU_TOP) ;
AddVariableToScript $(script) : outputDir : $(HAIKU_OUTPUT_DIR) ;
AddVariableToScript $(script) : tmpDir : $(HAIKU_TMP_DIR) ;
AddVariableToScript $(script) : installDir : $(HAIKU_INSTALL_DIR) ;
#AddVariableToScript $(script) : isImage : 1 ;
AddVariableToScript $(script) : imageSize : $(HAIKU_IMAGE_SIZE) ;
AddVariableToScript $(script) : imageLabel : $(HAIKU_IMAGE_LABEL) ;
AddVariableToScript $(script) : addBuildCompatibilityLibDir
: $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ;
AddVariableToScript $(script) : dontClearImage : $(HAIKU_DONT_CLEAR_IMAGE) ;
AddVariableToScript $(script) : updateOnly : [ IsUpdateHaikuImageOnly ] ;
AddVariableToScript $(script) : stripOptionalPackageDebugSymbols
: $(HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES) ;
AddTargetVariableToScript $(script) : <build>addattr ;
AddTargetVariableToScript $(script) : <build>bfs_shell : bfsShell ;
AddTargetVariableToScript $(script) : <build>fs_shell_command : fsShellCommand ;
AddTargetVariableToScript $(script) : <build>copyattr ;
AddTargetVariableToScript $(script) : <build>create_image : createImage ;
AddTargetVariableToScript $(script) : <build>makebootable ;
AddTargetVariableToScript $(script) : <build>rc ;
AddTargetVariableToScript $(script) : <build>resattr ;
AddTargetVariableToScript $(script) : <build>unzip ;
AddTargetVariableToScript $(script) : <build>vmdkimage ;
AddVariableToScript $(script) : stripCommand : $(HAIKU_STRIP) ;
if $(HOST_RM_ATTRS_TARGET) {
AddTargetVariableToScript $(script) : $(HOST_RM_ATTRS_TARGET) : rmAttrs ;
} else {
AddVariableToScript $(script) : rmAttrs : rm ;
}
if $(optionalPackageDescriptions) {
AddTargetVariableToScript $(script) : $(optionalPackageDescriptions)
: optionalPackageDescriptions ;
}
# create the other scripts
HAIKU_IMAGE_MAKE_DIRS_SCRIPT = <HaikuImage>haiku.image-make-dirs ;
HAIKU_IMAGE_COPY_FILES_SCRIPT = <HaikuImage>haiku.image-copy-files ;
HAIKU_IMAGE_EXTRACT_FILES_SCRIPT = <HaikuImage>haiku.image-extract-files ;
MakeLocate $(HAIKU_IMAGE_MAKE_DIRS_SCRIPT) $(HAIKU_IMAGE_COPY_FILES_SCRIPT)
$(HAIKU_IMAGE_EXTRACT_FILES_SCRIPT) : $(HAIKU_OUTPUT_DIR) ;
CreateHaikuImageMakeDirectoriesScript $(HAIKU_IMAGE_MAKE_DIRS_SCRIPT) ;
CreateHaikuImageCopyFilesScript $(HAIKU_IMAGE_COPY_FILES_SCRIPT) ;
CreateHaikuImageExtractFilesScript $(HAIKU_IMAGE_EXTRACT_FILES_SCRIPT) ;
# Convenience wrapper rule around BuildHaikuImage.
rule _BuildHaikuImage image : isImage : isVMwareImage
{
# _BuildHaikuImage <image target> : <isImage> : <isVMwareImage> ;
#
# build the image
# HAIKU_IMAGE_EARLY_USER_SCRIPTS, HAIKU_IMAGE_LATE_USER_SCRIPTS can be
# specified by the user.
BuildHaikuImage $(image) :
$(HAIKU_IMAGE_INIT_VARIABLES_SCRIPT)
$(HAIKU_IMAGE_EARLY_USER_SCRIPTS)
$(HAIKU_IMAGE_MAKE_DIRS_SCRIPT)
$(HAIKU_IMAGE_COPY_FILES_SCRIPT)
$(HAIKU_IMAGE_EXTRACT_FILES_SCRIPT)
$(HAIKU_IMAGE_LATE_USER_SCRIPTS)
: $(isImage)
: $(isVMwareImage)
;
# remove the scripts we have generated
RmTemps $(image) :
$(HAIKU_IMAGE_INIT_VARIABLES_SCRIPT)
$(HAIKU_IMAGE_MAKE_DIRS_SCRIPT)
$(HAIKU_IMAGE_COPY_FILES_SCRIPT)
$(HAIKU_IMAGE_EXTRACT_FILES_SCRIPT)
;
}
# build the image
_BuildHaikuImage $(HAIKU_IMAGE) : true ;
NotFile haiku-image ;
Depends haiku-image : $(HAIKU_IMAGE) ;
# install Haiku into a directory
NotFile install-haiku ;
_BuildHaikuImage install-haiku : 0 ;
# build the VMware image
HAIKU_VMWARE_IMAGE_NAME ?= $(HAIKU_DEFAULT_VMWARE_IMAGE_NAME) ;
HAIKU_VMWARE_IMAGE = $(HAIKU_VMWARE_IMAGE_NAME) ;
MakeLocate $(HAIKU_VMWARE_IMAGE) : $(HAIKU_IMAGE_DIR) ;
_BuildHaikuImage $(HAIKU_VMWARE_IMAGE) : true : true ;
NotFile haiku-vmware-image ;
Depends haiku-vmware-image : $(HAIKU_VMWARE_IMAGE) ;
# Execute post-image user config rules.
UserBuildConfigRulePostImage ;
+1 -2
View File
@@ -21,14 +21,13 @@ AddVariableToScript $(script) : isCD : 1 ;
AddVariableToScript $(script) : cdLabel : $(HAIKU_CD_LABEL) ;
AddVariableToScript $(script) : addBuildCompatibilityLibDir
: $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ;
AddVariableToScript $(script) : stripOptionalPackageDebugSymbols
: $(HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES) ;
AddTargetVariableToScript $(script) : <build>addattr ;
AddTargetVariableToScript $(script) : <build>copyattr ;
AddTargetVariableToScript $(script) : <build>rc ;
AddTargetVariableToScript $(script) : <build>resattr ;
AddTargetVariableToScript $(script) : <build>unzip ;
AddTargetVariableToScript $(script) : <build>generate_attribute_stores ;
AddVariableToScript $(script) : stripCommand : $(HAIKU_STRIP) ;
if $(HOST_RM_ATTRS_TARGET) {
AddTargetVariableToScript $(script) : $(HOST_RM_ATTRS_TARGET) : rmAttrs ;
} else {
+114 -125
View File
@@ -2,44 +2,23 @@
# installation directory) and it executes the rules building the image
# (respectively installing the files in the installation directory).
local X86_ONLY = ;
local PPC_ONLY = ;
local M68K_ONLY = ;
if $(TARGET_ARCH) = x86 {
X86_ONLY = "" ;
} else if $(TARGET_ARCH) = ppc {
PPC_ONLY = "" ;
} else if $(TARGET_ARCH) = m68k {
M68K_ONLY = "" ;
}
local GPL_ONLY = ;
if $(HAIKU_INCLUDE_GPL_ADDONS) = 1 {
GPL_ONLY = "" ;
}
#HACK: remove when old ide code is removed!
local ATA_ONLY = ;
local IDE_ONLY = ;
if $(HAIKU_ATA_STACK) = 1 {
ATA_ONLY = "" ;
} else {
IDE_ONLY = "" ;
}
SYSTEM_BIN = "[" addattr alert arp base64 basename bash bc beep bzip2
SYSTEM_BIN = [ FFilterByBuildFeatures
"["
addattr alert arp
base64 basename bash bc beep bfsinfo
cal cat catattr checkfs checkitout chgrp chmod chop chown chroot cksum clear
clockconfig cmp collectcatkeys comm compress copyattr CortexAddOnHost cp
csplit ctags cut date dc dd desklink df diff diff3 dircolors dirname
draggers driveinfo dstcheck du dumpcatalog
csplit cut date dc dd desklink df diff diff3 dircolors dirname
diskimage draggers driveinfo dstcheck du dumpcatalog
echo eject env error expand expr
factor false fdinfo ffm filepanel find finddir fmt fold fortune frcode
ftp ftpd funzip fwcontrol
gawk $(X86_ONLY)gdb getlimits grep groups gzip gzexe
factor false fdinfo ffm filepanel find finddir FirstBootPrompt fmt fold
fortune frcode ftp ftpd funzip fwcontrol
gawk gdb@x86 getlimits groups gzip gzexe
hd head hey hostname
id ident ifconfig <bin>install installsound iroster isvolume
$(IDE_ONLY)ideinfo $(IDE_ONLY)idestatus
join kernel_debugger keymap kill
ideinfo@ide idestatus@ide
join kernel_debugger keymap keystore kill
less lessecho lesskey link linkcatkeys listarea listattr listimage listdev
listport listres listsem listusb ln locale locate logger login logname ls
lsindex
@@ -50,65 +29,70 @@ SYSTEM_BIN = "[" addattr alert arp base64 basename bash bc beep bzip2
package package_repo passwd paste patch pathchk pc ping ping6 pkgman play
playfile playsound playwav pr prio printenv printf profile ps ptx pwd
query quit
rc readlink ReadOnlyBootPrompt reindex release renice rlog rm rmattr
rmindex rmdir roster route
safemode screen_blanker screenmode screenshot sdiff setdecor settype
rc readlink reindex release renice rlog rm rmattr rmindex rmdir roster
route
safemode screen_blanker screenmode screenshot sdiff setdecor setmime settype
setversion setvolume seq sha1sum sha256sum shar shred shuf shutdown sleep
sort spamdbm
split stat strace stty su sum sync sysinfo
sort spamdbm split stat strace stty su sum sync sysinfo
tac tail tcpdump tcptester tee telnet telnetd test timeout top touch
tput tr traceroute translate trash true truncate tsort tty
uname unchop unexpand unmount uniq unlink unrar unshar unzip unzipsfx
uname unchop unexpand unmount uniq unlink unshar unzip unzipsfx
<bin>updatedb uptime urlwrapper useradd uudecode uuencode
vdir version vmstat waitfor watch wc wget whoami xargs xres yes
vdir version vmstat
waitfor watch wc wget whoami writembr@x86 xargs xres
yes
zdiff zforce zgrep zip zipcloak <bin>zipgrep zipnote zipsplit zmore znew
;
] ;
SYSTEM_APPS = AboutSystem ActivityMonitor $(X86_ONLY)BootManager CharacterMap
CodyCam DeskCalc Devices DiskProbe DiskUsage DriveSetup CDPlayer Expander
Icon-O-Matic Installer LaunchBox Magnify Mail MediaConverter MediaPlayer
MidiPlayer NetworkStatus PackageInstaller People PoorMan PowerStatus
ProcessController Screenshot ShowImage SoundRecorder StyledEdit Terminal
TextSearch TV Workspaces
;
SYSTEM_PREFERENCES = Appearance Backgrounds CPUFrequency DataTranslations
<preference>Deskbar E-mail FileTypes Fonts Keyboard Keymap Locale Media
Mouse Network Notifications OpenGL Printers Screen ScreenSaver Shortcuts
Sounds Time Touchpad <preference>Tracker VirtualMemory
;
SYSTEM_DEMOS = BSnow Chart Clock Cortex FontDemo GLTeapot
$(HAIKU_INCLUDE_TRADEMARKS)Haiku3d Mandelbrot OverlayImage Pairs Playground
Pulse Sudoku
;
SYSTEM_LIBS =
SYSTEM_APPS = [ FFilterByBuildFeatures
AboutSystem ActivityMonitor BootManager@x86 CharacterMap
CodyCam DeskCalc Devices DiskProbe DiskUsage DriveSetup CDPlayer Debugger
Expander GLInfo@x86 Icon-O-Matic Installer LaunchBox Magnify Mail
MediaConverter MediaPlayer MidiPlayer NetworkStatus PackageInstaller People
PoorMan PowerStatus ProcessController Screenshot ShowImage SoundRecorder
StyledEdit Terminal TextSearch TV WebWatch Workspaces
] ;
SYSTEM_PREFERENCES = [ FFilterByBuildFeatures
Appearance Backgrounds CPUFrequency DataTranslations
<preference>Deskbar E-mail FileTypes Keyboard Keymap Locale Media
Mouse Network Notifications Printers Screen ScreenSaver
Shortcuts Sounds Time Touchpad <preference>Tracker VirtualMemory
] ;
SYSTEM_DEMOS = [ FFilterByBuildFeatures
BSnow Chart Clock Cortex FontDemo GLTeapot@x86
$(HAIKU_INCLUDE_TRADEMARKS)Haiku3d@x86 Mandelbrot OverlayImage Pairs
Playground Pulse Sudoku
] ;
SYSTEM_LIBS = [ FFilterByBuildFeatures
libbe.so libbsd.so libbnetapi.so
libdebug.so libdevice.so
libfreetype.so
libgame.so libGL.so libgnu.so
libjpeg.so
liblocale.so
libmail.so libmedia.so libmidi.so libmidi2.so
libgame.so libGL.so@x86 libglut.so@x86
libgnu.so libmail.so libmedia.so libmidi.so libmidi2.so
libnetwork.so
libpackage.so libpng.so
libpackage.so
<revisioned>libroot.so
libscreensaver.so
libtextencoding.so libtiff.so libtracker.so libtranslation.so
libz.so
$(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++)
;
PRIVATE_SYSTEM_LIBS =
] ;
PRIVATE_SYSTEM_LIBS = [ FFilterByBuildFeatures
$(HAIKU_JPEG_CURRENT_LIB)
$(HAIKU_LIBPNG_CURRENT_LIB)
$(HAIKU_ZLIB_CURRENT_LIB)
$(HAIKU_FREETYPE_CURRENT_LIB)
libalm.so
libfluidsynth.so
libilmimf.so
liblpsolve55.so
libpackage-add-on-libsolv.so
libroot-addon-icu.so
;
SYSTEM_SERVERS = app_server cddb_daemon debug_server input_server mail_daemon
media_addon_server media_server midi_server mount_server net_server
notification_server package_daemon power_daemon print_server
print_addon_server registrar syslog_daemon
;
] ;
SYSTEM_SERVERS = [ FFilterByBuildFeatures
app_server cddb_daemon debug_server dns_resolver_server input_server
keystore_server mail_daemon media_addon_server media_server midi_server
mount_server net_server nfs4_idmapper_server notification_server
package_daemon power_daemon print_server print_addon_server registrar
syslog_daemon
] ;
SYSTEM_NETWORK_DEVICES = ethernet loopback ;
SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame
@@ -116,26 +100,25 @@ SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame
#SYSTEM_NETWORK_PPP = ipcp modem pap pppoe ;
SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix icmp6 ipv6 ;
SYSTEM_ADD_ONS_ACCELERANTS = $(X86_ONLY)radeon.accelerant
$(X86_ONLY)nvidia.accelerant $(X86_ONLY)matrox.accelerant
$(X86_ONLY)neomagic.accelerant $(X86_ONLY)intel_extreme.accelerant
$(X86_ONLY)s3.accelerant $(X86_ONLY)vesa.accelerant
$(X86_ONLY)ati.accelerant
$(X86_ONLY)3dfx.accelerant
$(X86_ONLY)radeon_hd.accelerant
#$(X86_ONLY)via.accelerant
#$(X86_ONLY)vmware.accelerant
;
SYSTEM_ADD_ONS_ACCELERANTS = [ FFilterByBuildFeatures
x86 @{
3dfx.accelerant ati.accelerant matrox.accelerant neomagic.accelerant
nvidia.accelerant intel_810.accelerant intel_extreme.accelerant
radeon.accelerant radeon_hd.accelerant s3.accelerant vesa.accelerant
#via.accelerant vmware.accelerant
}@ # x86
] ;
SYSTEM_ADD_ONS_TRANSLATORS = BMPTranslator EXRTranslator GIFTranslator
HVIFTranslator ICOTranslator JPEGTranslator JPEG2000Translator
PCXTranslator PNGTranslator PPMTranslator
RAWTranslator RTF-Translator SGITranslator STXTTranslator TGATranslator
TIFFTranslator WebPTranslator WonderBrushTranslator
RAWTranslator RTFTranslator SGITranslator STXTTranslator TGATranslator
TIFFTranslator WebPTranslator WonderBrushTranslator ICNSTranslator
;
SYSTEM_ADD_ONS_LOCALE_CATALOGS = <catalog-addon>zeta <catalog-addon>plaintext ;
SYSTEM_ADD_ONS_MEDIA = cortex_audioadapter.media_addon
SYSTEM_ADD_ONS_LOCALE_CATALOGS = <catalog-addon>plaintext ;
SYSTEM_ADD_ONS_MEDIA = [ FFilterByBuildFeatures
cortex_audioadapter.media_addon
cortex_flanger.media_addon
dvb.media_addon
dvb.media_addon@x86
hmulti_audio.media_addon
mixer.media_addon
opensound.media_addon
@@ -145,8 +128,12 @@ SYSTEM_ADD_ONS_MEDIA = cortex_audioadapter.media_addon
video_window_demo.media_addon
firewire_dv.media_addon
#legacy.media_addon
;
SYSTEM_ADD_ONS_MEDIA_PLUGINS = $(X86_ONLY)ffmpeg raw_decoder ;
equalizer.media_addon
vst_host.media_addon
] ;
SYSTEM_ADD_ONS_MEDIA_PLUGINS = [ FFilterByBuildFeatures
ffmpeg@ffmpeg raw_decoder
] ;
SYSTEM_ADD_ONS_PRINT =
Canon\ LIPS3\ Compatible
Canon\ LIPS4\ Compatible
@@ -161,40 +148,47 @@ SYSTEM_ADD_ONS_PRINT_TRANSPORT = HP\ JetDirect IPP LPR
# Parallel\ Port
Print\ To\ File Serial\ Port USB\ Port
;
SYSTEM_ADD_ONS_SCREENSAVERS = Butterfly DebugNow Flurry
$(HAIKU_INCLUDE_TRADEMARKS)Haiku Icons IFS Leaves Message Spider ;
SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda sis7018 ;
SYSTEM_ADD_ONS_SCREENSAVERS = [ FFilterByBuildFeatures
Butterfly DebugNow Flurry@x86
GLife@x86 $(HAIKU_INCLUDE_TRADEMARKS)Haiku Icons IFS Leaves
Message Spider Gravity@x86
] ;
SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ice1712 sis7018 ;
SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ; #cmedia usb_audio ;
SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = $(X86_ONLY)radeon $(X86_ONLY)nvidia
$(X86_ONLY)neomagic $(X86_ONLY)matrox $(X86_ONLY)intel_extreme
$(X86_ONLY)s3 $(X86_ONLY)vesa #$(X86_ONLY)via #$(X86_ONLY)vmware
$(X86_ONLY)ati $(X86_ONLY)3dfx $(X86_ONLY)radeon_hd
;
SYSTEM_ADD_ONS_DRIVERS_MIDI = emuxki usb_midi ;
SYSTEM_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com $(X86_ONLY)atheros813x
$(X86_ONLY)ar81xx $(X86_ONLY)attansic_l1 $(X86_ONLY)attansic_l2
$(X86_ONLY)broadcom440x $(X86_ONLY)broadcom570x $(X86_ONLY)dec21xxx etherpci
$(X86_ONLY)ipro100 $(X86_ONLY)ipro1000 $(X86_ONLY)jmicron2x0
$(X86_ONLY)marvell_yukon $(X86_ONLY)nforce $(X86_ONLY)pcnet pegasus
$(X86_ONLY)rtl8139 $(X86_ONLY)rtl81xx sis900
$(X86_ONLY)syskonnect usb_davicom usb_asix usb_ecm $(X86_ONLY)via_rhine
$(X86_ONLY)vt612x wb840
SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = [ FFilterByBuildFeatures
x86 @{
ati 3dfx intel_810 intel_extreme matrox neomagic nvidia radeon radeon_hd
s3 vesa #via vmware
}@ # x86
] ;
SYSTEM_ADD_ONS_DRIVERS_MIDI = emuxki ice1712 usb_midi ;
SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures
x86 @{
3com atheros813x ar81xx attansic_l1 attansic_l2 broadcom440x
broadcom570x dec21xxx ipro100 ipro1000 jmicron2x0 marvell_yukon nforce
pcnet rtl8139 rtl81xx sis19x syskonnect via_rhine vt612x
}@ # x86
etherpci pegasus sis900 usb_davicom usb_asix usb_ecm wb840
# WLAN drivers
$(X86_ONLY)aironetwifi $(X86_ONLY)atheroswifi $(X86_ONLY)broadcom43xx
$(X86_ONLY)ipw2100 $(X86_ONLY)iprowifi2200 $(X86_ONLY)iprowifi3945
$(X86_ONLY)iprowifi4965 $(X86_ONLY)marvell88w8363 $(X86_ONLY)marvell88w8335
$(X86_ONLY)ralink2860 $(X86_ONLY)ralinkwifi $(X86_ONLY)wavelanwifi
x86 @{
aironetwifi atheroswifi broadcom43xx
iprowifi2100 iprowifi2200 iprowifi3945
iprowifi4965 marvell88w8363 marvell88w8335
ralinkwifi wavelanwifi
}@ # x86
# WWAN drivers
#$(GPL_ONLY)usb_beceemwmx
;
SYSTEM_ADD_ONS_DRIVERS_POWER = $(X86_ONLY)acpi_button ;
SYSTEM_ADD_ONS_BUS_MANAGERS = $(ATA_ONLY)ata pci $(X86_ONLY)ps2 $(X86_ONLY)isa
$(IDE_ONLY)ide scsi config_manager agp_gart usb firewire $(X86_ONLY)acpi
;
#usb_beceemwmx@gpl
] ;
SYSTEM_ADD_ONS_DRIVERS_POWER = [ FFilterByBuildFeatures acpi_button@x86 ] ;
SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures
ata@ata pci ps2@x86 isa@x86
ide@ide scsi config_manager agp_gart usb firewire acpi@x86
] ;
SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs bindfs btrfs cdda exfat ext2 fat iso9660 nfs
attribute_overlay write_overlay ntfs packagefs reiserfs udf googlefs ;
nfs4 attribute_overlay write_overlay ntfs packagefs reiserfs udf googlefs ;
# build the haiku system package and add it
@@ -354,12 +348,8 @@ AddDirectoryToHaikuImage home config settings printers "Save as PDF"
# dvb channel settings
CopyDirectoryToHaikuImage home config settings Media
: [ FDirName $(HAIKU_TOP) data settings media dvb ]
: dvb : -x .svn -x Jamfile ;
: dvb : -x Jamfile ;
# Copy sample programs as per PDFlib Lite's license requirement.
CopyDirectoryToHaikuImage develop sample-code
: [ FDirName $(HAIKU_TOP) src libs pdflib bind pdflib ]
: pdflib : -x .svn ;
#pragma mark - Optional Packages
@@ -453,8 +443,6 @@ AddVariableToScript $(script) : addBuildCompatibilityLibDir
: $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ;
AddVariableToScript $(script) : dontClearImage : $(HAIKU_DONT_CLEAR_IMAGE) ;
AddVariableToScript $(script) : updateOnly : [ IsUpdateHaikuImageOnly ] ;
AddVariableToScript $(script) : stripOptionalPackageDebugSymbols
: $(HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES) ;
AddTargetVariableToScript $(script) : <build>addattr ;
AddTargetVariableToScript $(script) : <build>bfs_shell : bfsShell ;
AddTargetVariableToScript $(script) : <build>fs_shell_command : fsShellCommand ;
@@ -466,6 +454,7 @@ AddTargetVariableToScript $(script) : <build>rc ;
AddTargetVariableToScript $(script) : <build>resattr ;
AddTargetVariableToScript $(script) : <build>unzip ;
AddTargetVariableToScript $(script) : <build>vmdkimage ;
AddVariableToScript $(script) : stripCommand : $(HAIKU_STRIP) ;
if $(HOST_RM_ATTRS_TARGET) {
AddTargetVariableToScript $(script) : $(HOST_RM_ATTRS_TARGET) : rmAttrs ;
} else {
+98 -51
View File
@@ -26,31 +26,30 @@ for driver in $(SYSTEM_ADD_ONS_DRIVERS_NET) {
# modules
AddFilesToPackage add-ons kernel bus_managers : $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;
AddFilesToPackage add-ons kernel busses agp_gart : $(X86_ONLY)<agp_gart>intel ;
AddFilesToPackage add-ons kernel busses agp_gart : <agp_gart>intel@x86 ;
if $(HAIKU_ATA_STACK) = 1 {
AddFilesToPackage add-ons kernel busses ata
: generic_ide_pci it8211 legacy_sata silicon_image_3112
$(X86_ONLY)ide_isa ;
: generic_ide_pci it8211 legacy_sata silicon_image_3112 ide_isa@x86 ;
} else {
AddFilesToPackage add-ons kernel busses ide
: generic_ide_pci it8211 legacy_sata silicon_image_3112
$(X86_ONLY)ide_isa ;
: generic_ide_pci it8211 legacy_sata silicon_image_3112 ide_isa@x86 ;
}
AddFilesToPackage add-ons kernel busses scsi : ahci ;
AddFilesToPackage add-ons kernel busses usb : <usb>uhci <usb>ohci <usb>ehci ;
AddFilesToPackage add-ons kernel console : vga_text ;
AddFilesToPackage add-ons kernel debugger
: <kdebug>demangle $(X86_ONLY)<kdebug>disasm <kdebug>hangman
<kdebug>invalidate_on_exit <kdebug>usb_keyboard <kdebug>run_on_exit ;
: <kdebug>demangle <kdebug>disasm@x86 <kdebug>hangman
<kdebug>invalidate_on_exit <kdebug>usb_keyboard <kdebug>qrencode
<kdebug>run_on_exit ;
AddFilesToPackage add-ons kernel file_systems : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
AddFilesToPackage add-ons kernel generic
: $(ATA_ONLY)ata_adapter dpc $(IDE_ONLY)ide_adapter locked_pool mpu401
scsi_periph <module>tty ;
: ata_adapter@ata bios@x86 dpc ide_adapter@ide
locked_pool mpu401 scsi_periph <module>tty ;
AddFilesToPackage add-ons kernel partitioning_systems
: amiga_rdb apple efi_gpt intel session ;
AddFilesToPackage add-ons kernel interrupt_controllers : $(PPC_ONLY)openpic ;
AddFilesToPackage add-ons kernel interrupt_controllers : openpic@ppc ;
if $(TARGET_ARCH) = x86 {
AddFilesToPackage add-ons kernel cpu : generic_x86 ;
@@ -58,8 +57,9 @@ if $(TARGET_ARCH) = x86 {
# drivers
AddNewDriversToPackage disk scsi : scsi_cd scsi_disk ;
AddNewDriversToPackage power : $(X86_ONLY)enhanced_speedstep ;
AddNewDriversToPackage power : $(X86_ONLY)acpi_battery ;
AddNewDriversToPackage power : enhanced_speedstep@x86 ;
AddNewDriversToPackage power : acpi_battery@x86 ;
#AddNewDriversToPackage display : display_controls@x86 ;
# legacy drivers
AddDriversToPackage : console dprintf null random <driver>tty
@@ -68,7 +68,7 @@ AddDriversToPackage audio hmulti : $(SYSTEM_ADD_ONS_DRIVERS_AUDIO) ;
AddDriversToPackage audio old : $(SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD) ;
AddDriversToPackage midi : $(SYSTEM_ADD_ONS_DRIVERS_MIDI) ;
AddDriversToPackage bus : usb_raw fw_raw ;
AddDriversToPackage disk floppy : $(X86_ONLY)pc_floppy ;
AddDriversToPackage disk floppy : pc_floppy@x86 ;
AddDriversToPackage disk usb : usb_disk ;
AddDriversToPackage disk usb : usb_floppy ;
AddDriversToPackage printer usb : usb_printer ;
@@ -100,9 +100,8 @@ if $(HAIKU_GCC_VERSION[1]) = 2 {
}
# libGL.so has GLU (like BeOS) *and* GLUT API built-in
SYSTEM_LIBS_LIBGL_ALIASES
= libGLU.so libglut.so ;
# libGL.so has GLU (like BeOS) built-in
SYSTEM_LIBS_LIBGL_ALIASES = libGLU.so ;
if $(TARGET_ARCH) = x86 {
local lib ;
@@ -117,12 +116,44 @@ SYSTEM_LIBS_ALIASES =
$(SYSTEM_LIBS_LIBGL_ALIASES)
;
OPTIONAL_LIBS_ALIASES =
libfreetype.so
libjpeg.so
libpng.so
libz.so
;
# TODO: Remove the following symlinks when the libraries have been packaged
# properly!
# libfreetype.so links to the current freetype lib
AddSymlinkToPackage lib : $(HAIKU_FREETYPE_CURRENT_LIB:BS)
: $(HAIKU_FREETYPE_CURRENT_LINK) : : true ;
AddSymlinkToPackage lib : $(HAIKU_FREETYPE_CURRENT_LINK)
: libfreetype.so : : true ;
# libpng.so links to the current libpng
AddSymlinkToPackage lib : $(HAIKU_LIBPNG_CURRENT_LIB:BS)
: $(HAIKU_LIBPNG_CURRENT_LINK) : : true ;
AddSymlinkToPackage lib : $(HAIKU_LIBPNG_CURRENT_LINK)
: libpng.so : : true ;
# libjpeg.so links to the current libjpeg
AddSymlinkToPackage lib : $(HAIKU_JPEG_CURRENT_LIB:BS)
: $(HAIKU_JPEG_CURRENT_LINK) : : true ;
AddSymlinkToPackage lib : $(HAIKU_JPEG_CURRENT_LINK)
: libjpeg.so : : true ;
# zlib.so links to the current zlib
AddSymlinkToPackage lib : $(HAIKU_ZLIB_CURRENT_LIB:BS)
: $(HAIKU_ZLIB_CURRENT_LINK) : : true ;
AddSymlinkToPackage lib : $(HAIKU_ZLIB_CURRENT_LINK)
: libz.so : : true ;
# servers
AddFilesToPackage servers : $(SYSTEM_SERVERS) ;
# apps
AddFilesToPackage : runtime_loader ;
AddFilesToPackage : Deskbar Tracker ;
AddFilesToPackage : runtime_loader Deskbar Tracker ;
AddFilesToPackage bin : $(SYSTEM_BIN) consoled ;
AddFilesToPackage apps : $(SYSTEM_APPS) ;
AddFilesToPackage preferences : $(SYSTEM_PREFERENCES) ;
@@ -135,16 +166,12 @@ AddFilesToPackage bin : install-wifi-firmwares.sh ;
AddSymlinkToPackage bin : bash : sh ;
AddSymlinkToPackage bin : trash : untrash ;
AddSymlinkToPackage bin : bzip2 : bunzip2 ;
AddSymlinkToPackage bin : less : more ;
AddSymlinkToPackage bin : gzip : gunzip ;
AddSymlinkToPackage bin : gzip : zcat ;
AddSymlinkToPackage bin : zdiff : zcmp ;
AddSymlinkToPackage bin : unzip : zipinfo ;
AddSymlinkToPackage bin : gawk : awk ;
AddSymlinkToPackage bin : grep : egrep ;
AddSymlinkToPackage bin : grep : fgrep ;
# scripts and data files
local bootScripts = Bootscript Bootscript.cd SetupEnvironment Netscript
@@ -163,7 +190,7 @@ AddFilesToPackage boot post_install : $(postInstallFiles) ;
# Gutenprint data files
CopyDirectoryToPackage data
: [ FDirName $(HAIKU_TOP) src libs print libgutenprint src xml ]
: gutenprint : -x .svn -x *.c -x Makefile.am -x Makefile.in ;
: gutenprint : -x *.c -x Makefile.am -x Makefile.in ;
# artwork and sounds
local logoArtwork =
@@ -178,11 +205,6 @@ spellFiles = $(spellFiles:G=spell) ;
SEARCH on $(spellFiles) = [ FDirName $(HAIKU_TOP) src apps mail ] ;
AddFilesToPackage data spell_check word_dictionary : $(spellFiles) ;
local dataFiles = teapot.data ;
dataFiles = $(dataFiles:G=data) ;
SEARCH on $(dataFiles) = [ FDirName $(HAIKU_TOP) data system data ] ;
AddFilesToPackage data : $(dataFiles) ;
local fortuneFiles = [ Glob $(HAIKU_TOP)/data/system/data/fortunes
: [a-zA-Z0-9]* ] ;
fortuneFiles = $(fortuneFiles:G=data!fortunes) ;
@@ -269,24 +291,31 @@ AddFilesToPackage : haiku_loader ;
# boot module links
AddBootModuleSymlinksToPackage
$(X86_ONLY)acpi $(ATA_ONLY)ata pci $(X86_ONLY)isa config_manager dpc
$(IDE_ONLY)ide scsi usb
$(PPC_ONLY)openpic
$(ATA_ONLY)ata_adapter $(IDE_ONLY)ide_adapter locked_pool scsi_periph
acpi@x86 ata@ata pci isa@x86 config_manager dpc
ide@ide scsi usb
openpic@ppc
ata_adapter@ata ide_adapter@ide locked_pool scsi_periph
ahci generic_ide_pci it8211 legacy_sata silicon_image_3112
$(X86_ONLY)ide_isa
ide_isa@x86
<usb>uhci <usb>ohci <usb>ehci
scsi_cd scsi_disk usb_disk
efi_gpt
intel
bfs packagefs
;
# add-ons
AddFilesToPackage add-ons accelerants : $(SYSTEM_ADD_ONS_ACCELERANTS) ;
AddFilesToPackage add-ons opengl : Mesa\ Software\ Renderer ;
AddFilesToPackage add-ons Translators : $(SYSTEM_ADD_ONS_TRANSLATORS) ;
AddFilesToPackage add-ons locale catalogs : $(SYSTEM_ADD_ONS_LOCALE_CATALOGS) ;
AddFilesToPackage add-ons opengl :
x86 @{
Legacy\ Software\ Rasterizer@gcc2
Software\ Rasterizer@!gcc2
}@ # x86
;
AddFilesToPackage add-ons mail_daemon inbound_protocols : POP3 IMAP ;
AddFilesToPackage add-ons mail_daemon outbound_protocols : SMTP ;
AddFilesToPackage add-ons mail_daemon inbound_filters
@@ -295,6 +324,7 @@ AddFilesToPackage add-ons mail_daemon outbound_filters : Fortune ;
AddFilesToPackage add-ons media : $(SYSTEM_ADD_ONS_MEDIA) ;
AddFilesToPackage add-ons media plugins : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ;
AddFilesToPackage add-ons Tracker
: FileType-F Mark\ as… Mark\ as\ Read-R Open\ Target\ Folder-O
Open\ Terminal-T ZipOMatic-Z ;
@@ -304,25 +334,28 @@ AddSymlinkToPackage add-ons Tracker
: /boot/system/apps/TextSearch : TextSearch-G ;
AddSymlinkToPackage add-ons Tracker
: /boot/system/apps/DiskUsage : DiskUsage-I ;
AddFilesToPackage add-ons input_server devices
: <input>keyboard <input>mouse <input>tablet <input>wacom ;
AddFilesToPackage add-ons input_server filters
: screen_saver shortcut_catcher ;
AddFilesToPackage add-ons kernel network
: <net>notifications stack ;
AddFilesToPackage add-ons kernel network devices
: $(SYSTEM_NETWORK_DEVICES) ;
AddFilesToPackage add-ons kernel network : <net>notifications stack ;
AddFilesToPackage add-ons kernel network : dns_resolver ;
AddFilesToPackage add-ons kernel network devices : $(SYSTEM_NETWORK_DEVICES) ;
AddFilesToPackage add-ons kernel network datalink_protocols
: $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ;
AddFilesToPackage add-ons kernel network ppp: $(SYSTEM_NETWORK_PPP) ;
AddFilesToPackage add-ons kernel network protocols
: $(SYSTEM_NETWORK_PROTOCOLS) ;
AddFilesToPackage add-ons Print : $(SYSTEM_ADD_ONS_PRINT) ;
AddFilesToPackage add-ons Print transport
: $(SYSTEM_ADD_ONS_PRINT_TRANSPORT) ;
AddFilesToPackage add-ons Screen\ Savers : $(SYSTEM_ADD_ONS_SCREENSAVERS) ;
AddFilesToPackage add-ons disk_systems : <disk_system>intel <disk_system>bfs ;
AddFilesToPackage add-ons disk_systems
: <disk_system>intel <disk_system>gpt <disk_system>bfs <disk_system>ntfs ;
# optional
@@ -334,22 +367,26 @@ AddFilesToPackage optional add-ons input_server methods : canna ;
# PDF Writer enconding files
CopyDirectoryToPackage data
: [ FDirName $(HAIKU_TOP) src add-ons print drivers pdf encoding ]
: "PDF Writer" : -x .svn -x Jamfile ;
: "PDF Writer" : -x Jamfile ;
# licenses
CopyDirectoryToPackage data
: [ FDirName $(HAIKU_TOP) data system data licenses ]
: licenses : -x .svn ;
: licenses ;
# Copy documentation as per DiskUsage's license requirement.
CopyDirectoryToPackage documentation
: [ FDirName $(HAIKU_TOP) docs apps diskusage ]
: diskusage : -x .svn ;
: diskusage ;
# Copy documentation as per PDFlib Lite's license requirement.
# Copy documentation and sample programs as per PDFlib Lite's license
# requirement.
CopyDirectoryToPackage documentation
: [ FDirName $(HAIKU_TOP) src libs pdflib doc ]
: pdflib : -x .svn ;
: pdflib ;
CopyDirectoryToPackage develop sample-code
: [ FDirName $(HAIKU_TOP) src libs pdflib bind pdflib ]
: pdflib ;
BuildHaikuPackage $(haikuPackage) : haiku ;
@@ -428,18 +465,28 @@ AddHeaderDirectoryToPackage compatibility bsd : bsd ;
AddHeaderDirectoryToPackage compatibility gnu : gnu ;
# third party libs headers
AddHeaderDirectoryToPackage libs freetype2 : 3rdparty ;
AddHeaderDirectoryToPackage libs jpeg : 3rdparty ;
AddHeaderDirectoryToPackage libs png : 3rdparty ;
AddHeaderDirectoryToPackage libs termcap : 3rdparty ;
AddHeaderDirectoryToPackage libs tiff : 3rdparty ;
AddHeaderDirectoryToPackage libs zlib : 3rdparty ;
CopyDirectoryToPackage develop headers :
[ FDirName $(HAIKU_FREETYPE_DIR) develop headers 3rdparty ] ;
CopyDirectoryToPackage develop headers : $(HAIKU_JPEG_HEADERS) : 3rdparty ;
CopyDirectoryToPackage develop headers : $(HAIKU_LIBPNG_HEADERS) : 3rdparty ;
CopyDirectoryToPackage develop headers : $(HAIKU_ZLIB_HEADERS) : 3rdparty ;
# cpp headers
if $(HAIKU_GCC_VERSION[1]) = 2 {
# GCC 2 only -- for GCC 4 they come with the DevelopmentBase package
CopyDirectoryToPackage $(developDirTokens) headers c++
: [ FDirName $(HAIKU_TOP) headers cpp ] : 2.95.3 : -x .svn ;
: [ FDirName $(HAIKU_TOP) headers cpp ] : 2.95.3 ;
}
# OpenGL headers
if $(TARGET_ARCH) = x86 {
CopyDirectoryToPackage $(developDirTokens) headers os opengl
: [ FDirName $(HAIKU_MESA_HEADERS) GL ] ;
CopyDirectoryToPackage $(developDirTokens) headers os opengl
: [ FDirName $(HAIKU_GLU_HEADERS) GL ] ;
}
BuildHaikuPackage $(haikuDevelPackage) : haiku_devel ;
@@ -452,7 +499,7 @@ local haikuUserGuidePackage = haiku_userguide.hpkg ;
HaikuPackage $(haikuUserGuidePackage) ;
CopyDirectoryToPackage documentation : [ FDirName $(HAIKU_TOP) docs userguide ]
: userguide : -x .svn ;
: userguide ;
SEARCH on userguide = [ FDirName $(HAIKU_TOP) data bin ] ;
AddFilesToPackage bin : userguide ;
@@ -466,7 +513,7 @@ local haikuWelcomePackage = haiku_welcome.hpkg ;
HaikuPackage $(haikuWelcomePackage) ;
CopyDirectoryToPackage documentation : [ FDirName $(HAIKU_TOP) docs welcome ]
: welcome : -x .svn ;
: welcome ;
SEARCH on welcome = [ FDirName $(HAIKU_TOP) data bin ] ;
AddFilesToPackage bin : welcome ;
+56
View File
@@ -96,6 +96,62 @@ rule FSplitPath
return $(components) ;
}
rule FSetConditionsHold conditions : set
{
# FSetConditionsHold <conditions> : <set> ;
# Checks whether the conditions <conditions> are satisfied by the list of
# elements <set> and returns a respective result (if so: "1", if not: empty
# list). The conditions are satisfied when <conditions> is not empty and
# * none of the negative conditions it contains hold and
# * if <conditions> contains any positive conditions, at least one one of
# those holds.
# A positive condition is an element not starting with a "!". It holds when
# the element is contained in <set>.
# A negative condition is an element that starts with a "!". It holds when
# the string resulting from removing the leading "!" is not contained in
# <set>.
#
# <conditions> - The list of conditions.
# <set> - The elements against which the conditions are tested.
#
# Examples:
# For set { a b c } the following conditions hold:
# { a }, { a d }, { !d }, { !d !e }, { a !d }, { b !e !f }
# The following conditions don't hold:
# { }, { d }, { d e }, { !a }, { !a b }, { !d e } { a b !c !d }
local hasPositive ;
local hasNegative ;
local positiveMatch ;
local condition ;
for condition in $(conditions) {
switch $(condition) {
case !* :
{
hasNegative = 1 ;
condition = [ Match "!(.*)" : $(condition) ] ;
if $(condition) in $(set) {
return ;
}
}
case * :
{
hasPositive = 1 ;
if $(condition) in $(set) {
positiveMatch = 1 ;
}
}
}
}
if $(hasPositive) {
return $(positiveMatch) ;
}
return $(hasNegative) ;
}
rule SetPlatformCompatibilityFlagVariables
{
# SetPlatformCompatibilityFlagVariables <platform var> : <var prefix>
+32 -7
View File
@@ -197,6 +197,8 @@ rule AddFilesToContainer container : directoryTokens : targets : destName
local systemDirTokens
= [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ;
targets = [ FFilterByBuildFeatures $(targets) ] ;
# If the image shall only be updated, we filter out all targets not marked
# accordingly.
if [ on $(container) return $(HAIKU_CONTAINER_UPDATE_ONLY) ]
@@ -378,10 +380,10 @@ rule AddWifiFirmwareToContainer container : driver : package : archive : extract
rule ExtractArchiveToContainer container : directoryTokens : archiveFile
: alwaysUpdate : extractedSubDir
: alwaysUpdate : extractedSubDir : stripDebugSymbols
{
# ExtractArchiveToContainer <container> : <directory> : <archiveFile>
# : <alwaysUpdate> : <extractedSubDir> ;
# : <alwaysUpdate> : <extractedSubDir> : <stripDebugSymbols> ;
# If the container shall only be updated, we extract only, if explicitely
# requested.
@@ -395,6 +397,7 @@ rule ExtractArchiveToContainer container : directoryTokens : archiveFile
ARCHIVE_FILES_TO_INSTALL on $(directory) += $(archiveFile) ;
ARCHIVE_SUBDIR_TO_INSTALL_FROM on $(archiveFile) = $(extractedSubDir) ;
ARCHIVE_FILES_TO_STRIP on $(archiveFile) = $(stripDebugSymbols) ;
}
rule AddDriversToContainer container : relativeDirectoryTokens : targets
@@ -406,6 +409,8 @@ rule AddDriversToContainer container : relativeDirectoryTokens : targets
local directoryTokens = $(systemDirTokens) add-ons kernel drivers dev
$(relativeDirectoryTokens) ;
targets = [ FFilterByBuildFeatures $(targets) ] ;
AddFilesToContainer $(container)
: $(systemDirTokens) add-ons kernel drivers bin
: $(targets) ;
@@ -441,6 +446,8 @@ rule AddNewDriversToContainer container : relativeDirectoryTokens
local directoryTokens = $(systemDirTokens) add-ons kernel drivers
$(relativeDirectoryTokens) ;
targets = [ FFilterByBuildFeatures $(targets) ] ;
AddFilesToContainer $(container) : $(directoryTokens)
: $(targets) ;
}
@@ -459,6 +466,7 @@ rule AddBootModuleSymlinksToContainer container : targets
local systemDirTokens
= [ on $(container) return $(HAIKU_CONTAINER_SYSTEM_DIR_TOKENS) ] ;
targets = [ FFilterByBuildFeatures $(targets) ] ;
# add the symlinks
local installTargetsVar
@@ -744,6 +752,11 @@ rule CreateContainerExtractFilesScript container : script
ARCHIVE_SUBDIR_TO_INSTALL_FROM on $(dummyTarget) =
$(extractedSubDir:E=.) ;
local stripDebugSymbols = [ on $(archiveFile)
return $(ARCHIVE_FILES_TO_STRIP) ] ;
STRIP_DEBUG_SYMBOLS_FROM_ARCHIVE on $(dummyTarget) =
$(stripDebugSymbols) ;
Depends $(dummyTarget) : $(initScript) $(archiveFile)
$(serializationDependency) ;
Depends $(script) : $(dummyTarget) ;
@@ -759,7 +772,8 @@ rule CreateContainerExtractFilesScript container : script
actions AddExtractFileToContainerExtractFilesScript
{
echo extractFile "\"$(2[2])\"" "\"$(TARGET_DIR)\"" \
"\"$(ARCHIVE_SUBDIR_TO_INSTALL_FROM)\"" >> $(2[1])
"\"$(ARCHIVE_SUBDIR_TO_INSTALL_FROM)\"" \
"\"$(STRIP_DEBUG_SYMBOLS_FROM_ARCHIVE)\"" >> $(2[1])
}
@@ -827,7 +841,7 @@ rule AddSourceDirectoryToHaikuImage dirTokens : alwaysUpdate
CopyDirectoryToHaikuImage home HaikuSources
: [ FDirName $(HAIKU_TOP) $(dirTokens) ]
: : -x .svn : $(alwaysUpdate) ;
: : : $(alwaysUpdate) ;
}
rule AddHeaderDirectoryToHaikuImage dirTokens : dirName : alwaysUpdate
@@ -848,13 +862,14 @@ rule AddWifiFirmwareToHaikuImage driver : package : archive : extract
}
rule ExtractArchiveToHaikuImage dirTokens : archiveFile : alwaysUpdate
: extractedSubDir
: extractedSubDir : stripDebugSymbols
{
# ExtractArchiveToHaikuImage <dirTokens> : <archiveFile> : <alwaysUpdate>
# : <extractedSubDir> ;
ExtractArchiveToContainer $(HAIKU_IMAGE_CONTAINER_NAME) : $(dirTokens)
: $(archiveFile) : $(alwaysUpdate) : $(extractedSubDir) ;
: $(archiveFile) : $(alwaysUpdate) : $(extractedSubDir)
: $(stripDebugSymbols) ;
}
rule AddDriversToHaikuImage relativeDirectoryTokens : targets
@@ -948,6 +963,7 @@ rule InstallSourceArchive file : url
}
rule InstallOptionalHaikuImagePackage url : dirTokens : isCDPackage
: stripDebugSymbols
{
# TODO: Remove the non-hpkg cases!
# Currently the semantics differs depending on isCDPackage and the type of
@@ -979,8 +995,17 @@ rule InstallOptionalHaikuImagePackage url : dirTokens : isCDPackage
# copy onto image
AddFilesToHaikuImage _packages_ : $(archiveFile) ;
} else {
if $(HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES) = 1 {
stripDebugSymbols ?= 1 ;
# The script will only test for = 1. This is in case someone
# manually set the flag 'true'
if $(stripDebugSymbols) = true {
stripDebugSymbols = 1 ;
}
}
# extract onto image
ExtractArchiveToHaikuImage $(dirTokens) : $(archiveFile) ;
ExtractArchiveToHaikuImage $(dirTokens) : $(archiveFile)
: : : $(stripDebugSymbols) ;
}
}
+21 -3
View File
@@ -48,9 +48,9 @@ rule KernelLd
# libsupc++ is opt-out.
local libs ;
if ! [ on $(1) return HAIKU_NO_LIBSUPC++ ] {
libs += $(TARGET_STATIC_LIBSUPC++) ;
libs += $(TARGET_KERNEL_LIBSUPC++) ;
}
LINKLIBS on $(1) = $(libs) $(TARGET_GCC_LIBGCC) ;
LINKLIBS on $(1) = $(libs) $(TARGET_KERNEL_LIBGCC) ;
# TODO: Do we really want to invoke SetupKernel here? The objects should
# have been compiled with KernelObjects anyway, so we're doing that twice.
@@ -77,6 +77,24 @@ actions KernelLd bind VERSION_SCRIPT
--version-script=$(VERSION_SCRIPT)
}
rule KernelSo target : source
{
# KernelSo <target> : <source>
Depends $(target) : <build>copyattr $(source) ;
MakeLocateDebug $(1) ;
KernelSo1 $(target) : <build>copyattr $(source) ;
}
actions KernelSo1
{
$(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)
$(2[1]) --data $(2[2]) $(1) &&
$(HAIKU_ELFEDIT) --output-type dyn $(1)
}
rule KernelAddon
{
# KernelAddon <name> : <sources> : <static-libraries> : <res> ;
@@ -117,7 +135,7 @@ rule KernelAddon
# compile and link
SetupKernel $(sources) : $(TARGET_KERNEL_PIC_FLAGS) : false ;
local linkFlags = -nostdlib -Xlinker --no-undefined
-Xlinker -soname=\"$(target:G=)\" ;
-Xlinker -soname=\"$(target:G=)\" $(TARGET_KERNEL_ADDON_LINKFLAGS) ;
LINKFLAGS on $(target) = [ on $(target) return $(LINKFLAGS) ] $(linkFlags) ;
Main $(target) : $(sources) ;
LinkAgainst $(target) : $(libs) $(kernel) ;
+5 -9
View File
@@ -14,10 +14,10 @@ rule ExtractCatalogEntries target : sources : signature : regexp
local systemIncludesOption ;
on $(target) { # use on $(target) variable values
defines = $(DEFINES) ;
headers = $(HAIKU_CONFIG_HEADERS) $(SEARCH_SOURCE) $(SUBDIRHDRS)
$(HDRS) ;
sysHeaders = $(SUBDIRSYSHDRS) $(SYSHDRS) ;
defines = $(DEFINES) ;
if $(PLATFORM) = host {
sysHeaders += $(HOST_HDRS) ;
@@ -57,10 +57,8 @@ rule ExtractCatalogEntries target : sources : signature : regexp
SEARCH on $(sources) += $(SEARCH_SOURCE) ;
local subdir
= [ on $(signature) return $(HAIKU_CATALOGS_SUBDIR) ] ;
MakeLocate $(target)
: [ FDirName $(HAIKU_CATALOGS_OBJECT_DIR) $(subdir) ] ;
local subdir = [ on $(signature) return $(HAIKU_CATALOGS_SUBDIR) ] ;
MakeLocate $(target) : [ FDirName $(HAIKU_CATALOGS_OBJECT_DIR) $(subdir) ] ;
Depends $(target) : $(sources) <build>collectcatkeys ;
LocalClean clean : $(target).pre ;
ExtractCatalogEntries1 $(target) : <build>collectcatkeys $(sources) ;
@@ -82,10 +80,8 @@ rule LinkApplicationCatalog target : sources : signature : language
# if the fingerprint matches the one from the untranslated catalog for the
# same file.
local subdir
= [ on $(signature) return $(HAIKU_CATALOGS_SUBDIR) ] ;
MakeLocate $(target)
: [ FDirName $(HAIKU_CATALOGS_OBJECT_DIR) $(subdir) ] ;
local subdir = [ on $(signature) return $(HAIKU_CATALOGS_SUBDIR) ] ;
MakeLocate $(target) : [ FDirName $(HAIKU_CATALOGS_OBJECT_DIR) $(subdir) ] ;
Depends $(target) : $(sources) <build>linkcatkeys ;
LocalClean clean : $(target) ;
+2 -2
View File
@@ -115,7 +115,7 @@ rule Addon target : sources : libraries : isExecutable
local linkFlags = -Xlinker -soname=\"$(target:G=)\" ;
if $(isExecutable) != true {
linkFlags = -nostart $(linkFlags) ;
linkFlags = -shared $(linkFlags) ;
}
LINKFLAGS on $(target) = [ on $(target) return $(LINKFLAGS) ] $(linkFlags) ;
LinkAgainst $(target) : $(libraries) ;
@@ -421,7 +421,7 @@ rule SharedLibraryFromObjects
MainFromObjects $(_lib) : $(2) ;
LINKFLAGS on $(_lib) = [ on $(_lib) return $(LINKFLAGS) ]
-nostart -Xlinker -soname=\"$(soname)\" ;
-shared -Xlinker -soname=\"$(soname)\" ;
LinkAgainst $(_lib) : $(3) ;
AddSharedObjectGlueCode $(_lib) : false ;
+163
View File
@@ -427,3 +427,166 @@ rule DefineBuildProfile name : type : path {
return 1 ;
}
# pragma mark - Build Features
rule FIsBuildFeatureEnabled feature
{
# FIsBuildFeatureEnabled <feature> ;
# Returns whether the given build feature <feature> is enabled (if so: "1",
# if not: empty list).
#
# <feature> - The name of the build feature (all lower case).
if $(feature) in $(HAIKU_BUILD_FEATURES) {
return 1 ;
}
return ;
}
rule FMatchesBuildFeatures specification
{
# FMatchesBuildFeatures <specification> ;
# Returns whether the given build feature specification <specification>
# holds. <specification> consists of positive and negative build feature
# conditions. Conditions can be individual list elements and multiple
# conditions can be joined, separated by ",", in a single list element. The
# effect is the same; they are considered as single set of conditions.
# A positive condition does not start with a "!". It holds when the build
# feature named by the element is enabled.
# A negative condition starts with a "!". It holds when the build feature
# named by the string resulting from removing the leading "!" is not
# enabled.
# <specification> holds when it is not empty and
# * none of the negative conditions it contains hold and
# * if it contains any positive conditions, at least one one of them holds.
#
# <specification> - The build feature specification. A list of individual
# conditions or conditions joined by ",".
local splitSpecification ;
local element ;
for element in $(specification) {
splitSpecification += [ FSplitString $(element) : "," ] ;
}
return [ FSetConditionsHold $(splitSpecification)
: $(HAIKU_BUILD_FEATURES) ] ;
}
rule FFilterByBuildFeatures list
{
# FFilterByBuildFeatures <list> ;
# Filters the list annotated by build feature specifications and returns the
# resulting list. The list can be annotated in two different ways:
# * A single list element can be annotated by appending "@<specification>"
# to it, with <specification> being a build feature specification (a
# single comma-separated string). The element appears in the resulting
# list, only if <specification> holds.
# * A sublist can be annotated by enclosing it in "<specification> @{" (two
# separate list elements) and "}@", with <specification> being a build
# feature specification (a single comma-separated string). The enclosed
# sublist appears in the resulting list, only if <specification> holds.
# The sublist annotations can be nested. The annotations themselves don't
# appear in the resulting list.
#
# <list> - A list annotated with build feature specifications.
local filteredList ;
# Since we must look ahead one element to be able to decide whether an
# element is a regular list element or a features specification for a
# subsequent "@{". Hence we always process an element other than "@{" and
# "}@" in the next iteration. We append a dummy element to the list so we
# don't need special handling for the last element.
local evaluationStack = 1 ;
local previousElement ;
local element ;
for element in $(list) dummy {
local stackTop = $(evaluationStack[1]) ;
local processElement = $(previousElement) ;
switch $(element) {
case }@ :
{
# Pop the topmost specificaton off the stack.
evaluationStack = $(evaluationStack[2-]) ;
if ! $(evaluationStack) {
Exit "FFilterByBuildFeatures: Unbalanced @( in: " $(list) ;
}
processElement = $(previousElement) ;
previousElement = ;
}
case @{ :
{
if ! $(previousElement) {
Exit "FFilterByBuildFeatures: No feature specification"
"after )@ in: " $(list) ;
}
if $(evaluationStack[1]) = 1
&& [ FMatchesBuildFeatures $(previousElement) ] {
evaluationStack = 1 $(evaluationStack) ;
} else {
evaluationStack = 0 $(evaluationStack) ;
}
processElement = ;
previousElement = ;
}
case * :
{
processElement = $(previousElement) ;
previousElement = $(element) ;
}
}
if $(processElement) && $(stackTop) = 1 {
local splitElement = [ Match "(.*)@([^@]*)" : $(processElement) ] ;
if $(splitElement) {
if [ FMatchesBuildFeatures $(splitElement[2]) ] {
filteredList += $(splitElement[1]) ;
}
} else {
filteredList += $(processElement) ;
}
}
}
if $(evaluationStack[2-]) {
Exit "FFilterByBuildFeatures: Unbalanced )@ in: " $(list) ;
}
return $(filteredList) ;
}
rule EnableBuildFeatures features : specification
{
# EnableBuildFeatures <features> : <specification> ;
# Enables the build features <features>, if the build features specification
# <specification> holds. If <specification> is omitted, the features are
# enabled unconditionally.
# The rule enables a build feature by adding its given lower case name to
# the build variable HAIKU_BUILD_FEATURES and defining a build variable
# HAIKU_BUILD_FEATURE_<FEATURE>_ENABLED (<FEATURE> being the upper case name
# of the build feature) to "1".
#
# <features> - A list of build feature names (lower case).
# <specification> - An optional build features specification (cf.
# FMatchesBuildFeatures).
if ! $(specification)
|| [ FMatchesBuildFeatures $(specification)
: $(HAIKU_BUILD_FEATURES) ] {
local feature ;
for feature in $(features) {
HAIKU_BUILD_FEATURES += $(feature) ;
HAIKU_BUILD_FEATURE_$(feature:U)_ENABLED = 1 ;
}
}
}
+25 -42
View File
@@ -1,43 +1,28 @@
# This file defines what ends up in the network boot archive and it executes the
# rules building the archive.
local X86_ONLY = ;
local PPC_ONLY = ;
if $(TARGET_ARCH) = x86 {
X86_ONLY = "" ;
} else if $(TARGET_ARCH) = ppc {
X86_ONLY = ;
}
local GPL_ONLY = ;
if $(HAIKU_INCLUDE_GPL_ADDONS) = 1 {
GPL_ONLY = "" ;
}
#HACK: remove when old ide code is removed!
local ATA_ONLY = ;
local IDE_ONLY = ;
if $(HAIKU_ATA_STACK) = 1 {
ATA_ONLY = "" ;
} else {
IDE_ONLY = "" ;
}
SYSTEM_NETWORK_DEVICES = ethernet loopback ;
SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame ;
SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix ;
SYSTEM_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com $(X86_ONLY)atheros813x
$(X86_ONLY)broadcom440x $(X86_ONLY)broadcom570x etherpci $(X86_ONLY)ipro1000
pegasus $(X86_ONLY)rtl8139 rtl8169 $(X86_ONLY)rtl81xx sis900
$(X86_ONLY)via_rhine wb840 $(X86_ONLY)ipro100 $(X86_ONLY)nforce
SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures
x86 @{
3com atheros813x
broadcom440x broadcom570x ipro1000
rtl8139 rtl81xx
via_rhine ipro100 nforce
marvell_yukon syskonnect
attansic_l2 ar81xx
}@ # x86
etherpci pegasus rtl8169 sis900 usb_ecm wb840
#vlance
$(X86_ONLY)marvell_yukon $(X86_ONLY)syskonnect
$(X86_ONLY)attansic_l2 $(X86_ONLY)ar81xx usb_ecm
;
SYSTEM_ADD_ONS_BUS_MANAGERS = pci $(X86_ONLY)isa $(IDE_ONLY)ide $(ATA_ONLY)ata
] ;
SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures
pci isa@x86 ide@ide ata@ata
scsi config_manager agp_gart
;
] ;
SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs fat iso9660 ;
@@ -45,9 +30,9 @@ SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs fat iso9660 ;
AddFilesToNetBootArchive system add-ons kernel bus_managers
: $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;
AddFilesToNetBootArchive system add-ons kernel busses agp_gart
: $(X86_ONLY)<agp_gart>intel ;
: <agp_gart>intel@x86 ;
AddFilesToNetBootArchive system add-ons kernel busses ide
: generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 ;
: generic_ide_pci ide_isa@x86 silicon_image_3112 ;
AddFilesToNetBootArchive system add-ons kernel busses scsi
: ahci ;
AddFilesToNetBootArchive system add-ons kernel console
@@ -55,13 +40,11 @@ AddFilesToNetBootArchive system add-ons kernel console
AddFilesToNetBootArchive system add-ons kernel file_systems
: $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
AddFilesToNetBootArchive system add-ons kernel generic
: $(IDE_ONLY)ide_adapter $(ATA_ONLY)ata_adapter locked_pool scsi_periph ;
AddFilesToNetBootArchive
system add-ons kernel partitioning_systems
: ide_adapter@ide ata_adapter@ata locked_pool scsi_periph ;
AddFilesToNetBootArchive system add-ons kernel partitioning_systems
: intel session ;
AddFilesToNetBootArchive
system add-ons kernel interrupt_controllers
: $(PPC_ONLY)openpic ;
AddFilesToNetBootArchive system add-ons kernel interrupt_controllers
: openpic@ppc ;
if $(TARGET_ARCH) = x86 {
AddFilesToNetBootArchive system add-ons kernel cpu
@@ -103,12 +86,12 @@ AddFilesToNetBootArchive
# boot module links
AddBootModuleSymlinksToNetBootArchive
$(SYSTEM_ADD_ONS_BUS_MANAGERS)
ahci generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112
ahci generic_ide_pci ide_isa@x86 silicon_image_3112
$(SYSTEM_ADD_ONS_FILE_SYSTEMS)
$(IDE_ONLY)ide_adapter $(ATA_ONLY)ata_adapter locked_pool scsi_periph
ide_adapter@ide ata_adapter@ata locked_pool scsi_periph
intel session
$(PPC_ONLY)openpic
$(X86_ONLY)generic_x86
openpic@ppc
generic_x86@x86
# nbd
remote_disk
$(SYSTEM_ADD_ONS_DRIVERS_NET)
-254
View File
@@ -1,254 +0,0 @@
# This file contains setup for features that can optionally be used for the
# build. For features that require downloading a zip file from somewhere it is
# likely the same file use for an optional package.
# SSL
# Automatically enable the SSL feature, when the optional OpenSSL optional
# package is enabled.
if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
HAIKU_BUILD_FEATURE_SSL = 1 ;
}
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_OPENSSL_PACKAGE = openssl-1.0.0e-x86-gcc4-2011-09-08.zip ;
} else {
HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-1-x86_gcc2.hpkg ;
}
local baseURL = http://haiku-files.org/files/optional-packages ;
local hpkgBaseURL = http://haiku-files.org/files/hpkg ;
HAIKU_OPENSSL_URL = $(hpkgBaseURL)/$(HAIKU_OPENSSL_PACKAGE) ;
if $(HAIKU_BUILD_FEATURE_SSL) {
if $(TARGET_ARCH) != x86 {
Echo "SSL build feature not available for $(TARGET_ARCH)" ;
} else {
# Download the package.
local zipFile = [ DownloadFile $(HAIKU_OPENSSL_PACKAGE)
: $(HAIKU_OPENSSL_URL) ] ;
# zip file and output directory
HAIKU_OPENSSL_ZIP_FILE = $(zipFile) ;
HAIKU_OPENSSL_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_OPENSSL_PACKAGE:B) ] ;
# extract headers and libraries
HAIKU_OPENSSL_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_OPENSSL_DIR)
: develop/headers/ : $(zipFile) : extracted-openssl
] ;
HAIKU_OPENSSL_LIBS = [ ExtractArchive $(HAIKU_OPENSSL_DIR)
:
develop/lib/libcrypto.so
develop/lib/libssl.so
: $(zipFile)
: extracted-openssl
] ;
HAIKU_OPENSSL_ENABLED = 1 ;
HAIKU_OPENSSL_HEADERS
= [ FDirName $(HAIKU_OPENSSL_DIR) develop/headers ] ;
}
}
# ICU
# Note ICU isn't actually optional, but is still an external package
HAIKU_ICU_GCC_2_PACKAGE = icu-4.8.1.1-2-x86_gcc2.hpkg ;
HAIKU_ICU_GCC_4_PACKAGE = icu-4.8.1-x86-gcc4-2011-11-02.zip ;
# TODO: Make hpkg!
HAIKU_ICU_PPC_PACKAGE = icu-4.8.1-ppc-2011-08-20.zip ;
HAIKU_ICU_DEVEL_PACKAGE = icu_devel-4.8.1.1-2-x86_gcc2.hpkg ;
# TODO: The devel package is no longer architecture independent!
if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 {
local icu_package ;
if $(TARGET_ARCH) = ppc {
icu_package = $(HAIKU_ICU_PPC_PACKAGE) ;
} else if $(HAIKU_GCC_VERSION[1]) = 2 {
icu_package = $(HAIKU_ICU_GCC_2_PACKAGE) ;
} else {
icu_package = $(HAIKU_ICU_GCC_4_PACKAGE) ;
}
local packageFile = [ DownloadFile $(icu_package)
: $(hpkgBaseURL)/$(icu_package) ] ;
# zip file and output directory
HAIKU_ICU_PACKAGE_FILE = $(packageFile) ;
HAIKU_ICU_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(icu_package:B) ] ;
# extract libraries
if $(TARGET_ARCH) = ppc {
HAIKU_ICU_LIBS = [ ExtractArchive $(HAIKU_ICU_DIR)
:
libicudata.so.48.1
libicui18n.so.48.1
libicuio.so.48.1
libicule.so.48.1
libiculx.so.48.1
libicutu.so.48.1
libicuuc.so.48.1
: $(packageFile)
: extracted-icu
] ;
} else {
HAIKU_ICU_LIBS = [ ExtractArchive $(HAIKU_ICU_DIR)
:
lib/libicudata.so.48.1.1
lib/libicui18n.so.48.1.1
lib/libicuio.so.48.1.1
lib/libicule.so.48.1.1
lib/libiculx.so.48.1.1
lib/libicutu.so.48.1.1
lib/libicuuc.so.48.1.1
: $(packageFile)
: extracted-icu
] ;
}
} else {
Echo "ICU not available for $(TARGET_ARCH)" ;
}
# zip file and output directory
HAIKU_ICU_DEVEL_ZIP_FILE = [ DownloadFile $(HAIKU_ICU_DEVEL_PACKAGE)
: $(hpkgBaseURL)/$(HAIKU_ICU_DEVEL_PACKAGE) ] ;
HAIKU_ICU_DEVEL_DIR = $(HAIKU_ICU_DIR) ;
# extract headers
HAIKU_ICU_HEADERS_DEPENDENCY = [ ExtractArchive
$(HAIKU_ICU_DEVEL_DIR:G=icu_devel)
# We need a grist here, so it's a different target than the one for the
# main package, even though it's the same directory.
: develop/headers : $(HAIKU_ICU_DEVEL_ZIP_FILE)
: extracted-icu-devel ] ;
HAIKU_ICU_HEADERS
= [ FDirName $(HAIKU_ICU_DEVEL_DIR) develop headers ] ;
# CLucene
# Automatically install the CLucene feature, when the optional CLucene optional
# package is enabled.
if [ IsOptionalHaikuImagePackageAdded CLucene ] {
HAIKU_BUILD_FEATURE_CLUCENE = 1 ;
}
local baseURL = http://haiku-files.org/files/optional-packages ;
HAIKU_CLUCENE_PACKAGE = clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip ;
HAIKU_CLUCENE_URL = $(baseURL)/$(HAIKU_CLUCENE_PACKAGE) ;
if $(HAIKU_BUILD_FEATURE_CLUCENE) {
if $(TARGET_ARCH) != x86 {
Echo "CLucene build feature not available for $(TARGET_ARCH)" ;
} else {
# Download the zip archive.
local zipFile = [ DownloadFile $(HAIKU_CLUCENE_PACKAGE)
: $(HAIKU_CLUCENE_URL) ] ;
# zip file and output directory
HAIKU_CLUCENE_ZIP_FILE = $(zipFile) ;
HAIKU_CLUCENE_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_CLUCENE_PACKAGE:B) ] ;
# extract headers and libraries
HAIKU_CLUCENE_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_CLUCENE_DIR)
: common/include/ : $(zipFile) : extracted-clucene
] ;
HAIKU_CLUCENE_LIBS = [ ExtractArchive $(HAIKU_CLUCENE_DIR)
:
common/lib/libclucene.a
: $(zipFile)
: extracted-clucene
] ;
HAIKU_CLUCENE_HEADERS
= [ FDirName $(HAIKU_CLUCENE_DIR) common include ] ;
}
}
# TagLib
# Automatically install the TagLib feature, when the optional TagLib optional
# package is enabled.
if [ IsOptionalHaikuImagePackageAdded TagLib ] {
HAIKU_BUILD_FEATURE_TAGLIB = 1 ;
}
local baseURL = http://haiku-files.org/files/optional-packages ;
HAIKU_TAGLIB_PACKAGE = taglib-1.6.3-r1a2-x86-gcc2-2010-04-25.zip ;
HAIKU_TAGLIB_URL = $(baseURL)/$(HAIKU_TAGLIB_PACKAGE) ;
if $(HAIKU_BUILD_FEATURE_TAGLIB) {
if $(TARGET_ARCH) != x86 {
Echo "TagLib build feature not available for $(TARGET_ARCH)" ;
} else {
# Download the zip archive.
local zipFile = [ DownloadFile $(HAIKU_TAGLIB_PACKAGE)
: $(HAIKU_TAGLIB_URL) ] ;
# zip file and output directory
HAIKU_TAGLIB_ZIP_FILE = $(zipFile) ;
HAIKU_TAGLIB_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_TAGLIB_PACKAGE:B) ] ;
# extract headers and libraries
HAIKU_TAGLIB_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_TAGLIB_DIR)
: common/include/ : $(zipFile) : extracted-taglib
] ;
HAIKU_TAGLIB_LIBS = [ ExtractArchive $(HAIKU_TAGLIB_DIR)
:
common/lib/libtag.so
common/lib/libtag_c.so
: $(zipFile)
: extracted-taglib
] ;
HAIKU_TAGLIB_HEADERS
= [ FDirName $(HAIKU_TAGLIB_DIR) common include taglib ] ;
}
}
# LibSolv
if $(TARGET_ARCH) != x86 {
Echo "Libsolv not available for $(TARGET_ARCH)." ;
} else if $(HAIKU_GCC_VERSION[1]) = 2 {
HAIKU_LIBSOLV_PACKAGE
= libsolv-0.3.0_haiku_2013_04_18-2-x86_gcc2.hpkg ;
} else {
Echo "Libsolv not available for gcc4." ;
}
if $(HAIKU_LIBSOLV_PACKAGE) {
# download package
HAIKU_LIBSOLV_PACKAGE_FILE = [ DownloadFile $(HAIKU_LIBSOLV_PACKAGE)
: $(hpkgBaseURL)/$(HAIKU_LIBSOLV_PACKAGE) ] ;
HAIKU_LIBSOLV_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_LIBSOLV_PACKAGE:B) ] ;
# extract headers and libraries
HAIKU_LIBSOLV_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBSOLV_DIR)
: develop/headers/ : $(HAIKU_LIBSOLV_PACKAGE_FILE) : extracted-libsolv
] ;
HAIKU_LIBSOLV_LIBS = [ ExtractArchive $(HAIKU_LIBSOLV_DIR)
:
develop/lib/libsolv.so
develop/lib/libsolvext.so
: $(HAIKU_LIBSOLV_PACKAGE_FILE)
: extracted-libsolv
] ;
HAIKU_LIBSOLV_HEADERS = [ FDirName $(HAIKU_LIBSOLV_DIR) develop/headers ] ;
}
+60 -60
View File
@@ -29,18 +29,18 @@ if [ IsOptionalHaikuImagePackageAdded AllegroLibs ] {
Echo "No optional package AllegroLibs available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/allegro-4.4.1.1-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/allegro-4.4.1.1-r1a4-x86-gcc4-2012-09-09.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/dumb-0.9.3-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/dumb-0.9.3-r1a4-x86-gcc4-2012-09-09.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/jgmod-0.99-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/jgmod-0.99-r1a4-x86-gcc4-2012-09-09.zip ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/allegro-4.4.1.1-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/allegro-4.4.1.1-r1a4-x86-gcc2-2012-08-30.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/dumb-0.9.3-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/dumb-0.9.3-r1a4-x86-gcc2-2012-08-30.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/jgmod-0.99-x86-gcc2-2011-08-02.zip ;
$(baseURL)/lib/jgmod-0.99-r1a4-x86-gcc2-2012-08-30.zip ;
}
}
@@ -52,7 +52,7 @@ if [ IsOptionalHaikuImagePackageAdded box2d ] {
} else {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/box2d-2.1.2-r1a3-x86-gcc4-2011-05-26.zip
$(baseURL)/lib/box2d-2.1.2-r1a4-x86-gcc4-2012-09-09.zip
: : true ;
} else {
Echo "No optional package box2d available for $(TARGET_ARCH)-gcc2" ;
@@ -67,11 +67,11 @@ if [ IsOptionalHaikuImagePackageAdded fribidi ] {
Echo "No optional package fribidi available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/fribidi-0.19.2-r1a3-x86-gcc4-2011-05-26.zip
$(baseURL)/lib/fribidi-0.19.2-r1a4-x86-gcc4-2012-09-01.zip
: : true ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/fribidi-0.19.2-r1a3-x86-gcc2-2011-05-19.zip
$(baseURL)/lib/fribidi-0.19.2-r1a4-x86-gcc2-2012-08-29.zip
: : true ;
}
}
@@ -83,11 +83,11 @@ if [ IsOptionalHaikuImagePackageAdded lcms ] {
Echo "No optional package lcms available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/lcms-2.1-r1a3-x86-gcc4-2011-05-26.zip
$(baseURL)/lib/lcms-2.1-r1a4-x86-gcc4-2012-09-02.zip
: : true ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/lcms-2.1-r1a3-x86-gcc2-2011-05-19.zip
$(baseURL)/lib/lcms-2.1-r1a4-x86-gcc2-2012-08-29.zip
: : true ;
}
}
@@ -99,11 +99,11 @@ if [ IsOptionalHaikuImagePackageAdded libart_lgpl ] {
Echo "No optional package libart_lgpl available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libart_lgpl-2.3.21-r1a3-x86-gcc4-2011-05-26.zip
$(baseURL)/lib/libart_lgpl-2.3.21-r1a4-x86-gcc4-2012-09-02.zip
: : true ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libart_lgpl-2.3.21-r1a3-x86-gcc2-2011-05-19.zip
$(baseURL)/lib/libart_lgpl-2.3.21-r1a4-x86-gcc2-2012-08-29.zip
: : true ;
}
}
@@ -115,11 +115,11 @@ if [ IsOptionalHaikuImagePackageAdded libmad ] {
Echo "No optional package libmad available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libmad-0.15.1b-r1a3-x86-gcc4-2011-05-26.zip
$(baseURL)/lib/libmad-0.15.1b-r1a4-x86-gcc4-2012-09-02.zip
: : true ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libmad-0.15.1b-r1a3-x86-gcc2-2011-05-19.zip
$(baseURL)/lib/libmad-0.15.1b-r1a4-x86-gcc2-2012-08-29.zip
: : true ;
}
}
@@ -131,11 +131,11 @@ if [ IsOptionalHaikuImagePackageAdded libmikmod ] {
Echo "No optional package libmikmod available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libmikmod-3.1.11-r1a3-x86-gcc4-2011-05-26.zip
$(baseURL)/lib/libmikmod-3.1.11-r1a4-x86-gcc4-2012-09-02.zip
: : true ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libmikmod-3.1.11-r1a3-x86-gcc2-2011-05-19.zip
$(baseURL)/lib/libmikmod-3.1.11-r1a4-x86-gcc2-2012-08-29.zip
: : true ;
}
}
@@ -147,11 +147,11 @@ if [ IsOptionalHaikuImagePackageAdded libmodplug ] {
Echo "No optional package libmodplug available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libmodplug-0.8.8.1-r1a3-x86-gcc4-2011-05-26.zip
$(baseURL)/lib/libmodplug-0.8.8.4-r1a4-x86-gcc4-2012-09-02.zip
: : true ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libmodplug-0.8.8.1-r1a3-x86-gcc2-2011-05-19.zip
$(baseURL)/lib/libmodplug-0.8.8.4-r1a4-x86-gcc2-2012-08-29.zip
: : true ;
}
}
@@ -163,11 +163,11 @@ if [ IsOptionalHaikuImagePackageAdded libpaper ] {
Echo "No optional package libpaper available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libpaper-1.1.24-r1a3-x86-gcc4-2011-05-26.zip
$(baseURL)/lib/libpaper-1.1.24-r1a4-x86-gcc4-2012-09-01.zip
: : true ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libpaper-1.1.24-r1a3-x86-gcc2-2011-05-19.zip
$(baseURL)/lib/libpaper-1.1.24-r1a4-x86-gcc4-2012-09-01.zip
: : true ;
}
}
@@ -179,11 +179,11 @@ if [ IsOptionalHaikuImagePackageAdded physfs ] {
Echo "No optional package physfs available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/physfs-2.0.1-r1a3-x86-gcc4-2011-05-26.zip
$(baseURL)/lib/physfs-2.0.1-r1a4-x86-gcc4-2012-09-09.zip
: : true ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/physfs-2.0.1-r1a3-x86-gcc2-2011-05-19.zip
$(baseURL)/lib/physfs-2.0.1-r1a4-x86-gcc2-2012-08-29.zip
: : true ;
}
}
@@ -195,54 +195,54 @@ if [ IsOptionalHaikuImagePackageAdded SDLLibs ] {
Echo "No optional package SDLLibs available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libsdl-1.2-hg-r1a3-x86-gcc4-2011-05-29.zip ;
$(baseURL)/lib/libsdl-1.2.15-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/guilib-1.2.1-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/guilib-1.2.1-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-gfx-2.0.22-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/sdl-gfx-2.0.23-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-image-1.2.10-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/sdl-image-1.2.12-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-mixer-1.2.11-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/sdl-mixer-1.2.11-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-net-1.2.7-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/sdl-net-1.2.8-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-sound-1.0.3-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/sdl-sound-1.0.3-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-rtf-0.1.0-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/sdl-rtf-0.1.0-r1a4-x86-gcc4-2012-09-03.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-ttf-2.0.10-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/sdl-ttf-2.0.11-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sge-030809-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/sge-030809-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/smjpeg-0.2.1-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/smjpeg-0.2.1-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/smpeg-0.4.5-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/smpeg-0.4.5-r1a4-x86-gcc4-2012-09-02.zip ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libsdl-1.2-hg-r1a3-x86-gcc2-2011-05-29.zip ;
$(baseURL)/lib/libsdl-1.2.15-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/guilib-1.2.1-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/guilib-1.2.1-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-gfx-2.0.22-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/sdl-gfx-2.0.23-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-image-1.2.10-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/sdl-image-1.2.12-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-mixer-1.2.11-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/sdl-mixer-1.2.11-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-net-1.2.7-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/sdl-net-1.2.8-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-sound-1.0.3-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/sdl-sound-1.0-hg-r1a4-x86-gcc2-2012-08-30.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-rtf-0.1.0-r1a3-x86-gcc2-2011-05-20.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sdl-ttf-2.0.10-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/sdl-ttf-2.0.11-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/sge-030809-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/sge-030809-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/smjpeg-0.2.1-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/smjpeg-0.2.1-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/smpeg-0.4.5-r1a3-x86-gcc2-2011-05-20.zip ;
$(baseURL)/lib/smpeg-0.4.5-r1a4-x86-gcc2-2012-08-29.zip ;
}
}
@@ -253,34 +253,34 @@ if [ IsOptionalHaikuImagePackageAdded XiphLibs ] {
Echo "No optional package XiphLibs available for $(TARGET_ARCH)" ;
} else if $(HAIKU_GCC_VERSION[1]) >= 4 {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/flac-1.2.1-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/flac-1.2.1-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libao-1.0.0-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/libao-1.0.0-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libogg-1.2.2-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/libogg-1.3.0-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libtheora-1.1.1-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/libtheora-1.1.1-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libvorbis-1.3.2-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/libvorbis-1.3.2-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/speex-1.2-git-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/speex-1.2rc1-r1a4-x86-gcc4-2012-09-02.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/vorbis-tools-1.4.0-r1a3-x86-gcc4-2011-05-26.zip ;
$(baseURL)/lib/vorbis-tools-1.4.0-r1a4-x86-gcc4-2012-09-02.zip ;
} else {
InstallOptionalHaikuImagePackage
$(baseURL)/lib/flac-1.2.1-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/flac-1.2.1-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libao-1.0.0-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/libao-1.0.0-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libogg-1.2.2-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/libogg-1.3.0-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libtheora-1.1.1-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/libtheora-1.1.1-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/libvorbis-1.3.2-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/libvorbis-1.3.2-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/speex-1.2-git-r1a3-x86-gcc2-2011-05-26.zip ;
$(baseURL)/lib/speex-1.2rc1-r1a4-x86-gcc2-2012-08-29.zip ;
InstallOptionalHaikuImagePackage
$(baseURL)/lib/vorbis-tools-1.4.0-r1a3-x86-gcc2-2011-05-19.zip ;
$(baseURL)/lib/vorbis-tools-1.4.0-r1a4-x86-gcc2-2012-08-29.zip ;
}
}
+11 -5
View File
@@ -1,7 +1,7 @@
# package dependencies
#
# For transitive dependencies dependants should be listed before their
# For transitive dependencies dependents should be listed before their
# dependencies.
OptionalPackageDependencies APR-util : APR Expat ;
@@ -10,15 +10,19 @@ OptionalPackageDependencies ArmyKnife : TagLib ;
OptionalPackageDependencies Beam : LibIconv LibLayout OpenSSL PCRE ;
OptionalPackageDependencies BeHappy : BeBook NetSurf ;
OptionalPackageDependencies BurnItNow : CDRecord ;
OptionalPackageDependencies CDRecord : LibIconv ;
OptionalPackageDependencies Caya : Expat ;
OptionalPackageDependencies CDRecord : GetText LibIconv ;
OptionalPackageDependencies Curl : OpenSSL ;
OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ;
OptionalPackageDependencies Development : DevelopmentBase Perl ;
OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ;
OptionalPackageDependencies GetText : LibIconv ;
OptionalPackageDependencies Git : Expat Curl OpenSSL LibIconv ;
OptionalPackageDependencies GitDoc : Man Git ;
OptionalPackageDependencies ICU-devel : DevelopmentBase ;
OptionalPackageDependencies LibEdit : NCurses ;
OptionalPackageDependencies LibLayout : DevelopmentBase ;
OptionalPackageDependencies LibXML2 : XZ-Utils ;
OptionalPackageDependencies Man : Groff ;
OptionalPackageDependencies Tar : LibIconv ;
OptionalPackageDependencies Python : Bzip ;
@@ -28,15 +32,17 @@ OptionalPackageDependencies Neon : LibXML2 ;
OptionalPackageDependencies NetFS : UserlandFS ;
OptionalPackageDependencies NetSurf : OpenSSL Curl LibXML2 LibIconv Libmng ;
OptionalPackageDependencies OpenSSH : OpenSSL ;
OptionalPackageDependencies Paladin : CCache Fastdep ;
OptionalPackageDependencies OpenSSL : CARootCertificates ;
OptionalPackageDependencies Paladin : CCache Fastdep PCRE ;
OptionalPackageDependencies Pe : PCRE ;
OptionalPackageDependencies Readline : NCurses ;
OptionalPackageDependencies SDLLibs : XiphLibs libmad libmikmod Libmng libmodplug physfs ;
OptionalPackageDependencies Subversion : APR-util Neon LibIconv LibXML2 OpenSSL SQLite ;
OptionalPackageDependencies Transmission : LibEvent Curl OpenSSL LibIconv ;
OptionalPackageDependencies Vim : GetText LibIconv ;
OptionalPackageDependencies WebPositive : Curl LibXML2 SQLite ;
OptionalPackageDependencies WebPositive : Curl LibXML2 SQLite WebKit WebPositiveBookmarks ;
OptionalPackageDependencies wpa_supplicant : OpenSSL ;
OptionalPackageDependencies XZ-Utils : Tar ;
OptionalPackageDependencies MandatoryPackages : ICU LibSolv Sed Tar ;
OptionalPackageDependencies MandatoryPackages
: Bzip Ctags Grep ICU LibSolv Sed Tar ;
+705 -242
View File
File diff suppressed because it is too large Load Diff
+8 -10
View File
@@ -16,20 +16,17 @@ switch $(HAIKU_BUILD_PROFILE) {
HAIKU_ROOT_USER_REAL_NAME = "Yourself" ;
AddGroupToHaikuImage party : 101 : user sshd ;
HAIKU_IMAGE_HOST_NAME = shredder ;
HAIKU_IMAGE_SIZE = 750 ;
HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES = 1 ;
HAIKU_IMAGE_SIZE = 800 ;
AddOptionalHaikuImagePackages TimGMSoundFont WQY-MicroHei ;
AddOptionalHaikuImagePackages BePDF Pe Vision
WebPositive WonderBrush ;
AddOptionalHaikuImagePackages CVS Development Git Mercurial
Python Subversion OpenSSH OpenSSL ;
AddOptionalHaikuImagePackages Nano P7zip Welcome BeBook XZ-Utils ;
local releaseNotesURL = http://dev.haiku-os.org/wiki/R1/Alpha3/ReleaseNotes?format=txt ;
local releaseNotesName = "Release Notes" ;
local releaseNotesFile = [ DownloadFile $(releaseNotesName) : $(releaseNotesURL) ] ;
AddFilesToHaikuImage home Desktop : $(releaseNotesFile) ;
AddOptionalHaikuImagePackages KeymapSwitcher Nano P7zip Welcome
BeBook XZ-Utils ;
AddOptionalHaikuImagePackages wpa_supplicant ;
}
case "beta-*" : {
@@ -41,12 +38,13 @@ switch $(HAIKU_BUILD_PROFILE) {
HAIKU_ROOT_USER_NAME = user ;
HAIKU_ROOT_USER_REAL_NAME = "Yourself" ;
AddGroupToHaikuImage party : 101 : user sshd ;
HAIKU_IMAGE_HOST_NAME = shredder ;
HAIKU_IMAGE_SIZE = 500 ;
HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES = 1 ;
HAIKU_IMAGE_HOST_NAME = shredder ;
HAIKU_IMAGE_SIZE = 600 ;
AddOptionalHaikuImagePackages Pe Nano Vision P7zip XZ-Utils ;
AddOptionalHaikuImagePackages Development Subversion OpenSSH OpenSSL ;
AddOptionalHaikuImagePackages Development Git OpenSSH OpenSSL ;
AddOptionalHaikuImagePackages wpa_supplicant WebPositive ;
}
}
+1
View File
@@ -63,6 +63,7 @@ HAIKU_IMAGE_DIR = /tmp ;
HAIKU_IMAGE_SIZE = 100 ;
# Enable stripping the debug symbols from optional packages.
# Note, some optional packages may override this to prevent stripping.
HAIKU_STRIP_DEBUG_FROM_OPTIONAL_PACKAGES = 1 ;
# Set image volume label to "Walter". Default label is "Haiku".
+7 -4
View File
@@ -13,6 +13,9 @@ HAIKU_BOARD_LOADER_BASE = 0x80008000 ;
HAIKU_BOARD_LOADER_ENTRY_RAW = 0x80008000 ;
HAIKU_BOARD_LOADER_ENTRY_NBSD = 0x80008008 ;
HAIKU_BOARD_LOADER_ENTRY = $(HAIKU_BOARD_LOADER_ENTRY_NBSD) ;
HAIKU_BOARD_LOADER_FAKE_OS = netbsd ;
# load address for haiku_loader uimage
# (must be different than real load address)
HAIKU_BOARD_LOADER_UIBASE = 0x84000000 ;
@@ -59,9 +62,9 @@ HAIKU_BOARD_SDIMAGE_FILES =
# gcc flags for the specific cpu
#
TARGET_KERNEL_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
TARGET_KERNEL_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
TARGET_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
TARGET_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
HAIKU_KERNEL_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
HAIKU_KERNEL_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
HAIKU_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
HAIKU_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
+9 -6
View File
@@ -12,6 +12,9 @@ HAIKU_BOARD_LOADER_BASE = 0x32000000 ;
HAIKU_BOARD_LOADER_ENTRY_RAW = 0x32000000 ;
HAIKU_BOARD_LOADER_ENTRY_NBSD = 0x32000008 ;
HAIKU_BOARD_LOADER_ENTRY = $(HAIKU_BOARD_LOADER_ENTRY_NBSD) ;
HAIKU_BOARD_LOADER_FAKE_OS = netbsd ;
# load address for haiku_loader uimage
# (must be different than real load address)
HAIKU_BOARD_LOADER_UIBASE = 0x34000000 ;
@@ -66,17 +69,17 @@ HAIKU_BOARD_SDIMAGE_FILES =
# gcc flags for the specific cpu
#
TARGET_KERNEL_CCFLAGS += -mcpu=arm920t ;
TARGET_KERNEL_C++FLAGS += -mcpu=arm920t ;
TARGET_CCFLAGS += -mcpu=arm920t ;
TARGET_C++FLAGS += -mcpu=arm920t ;
HAIKU_KERNEL_CCFLAGS += -mcpu=arm920t ;
HAIKU_KERNEL_C++FLAGS += -mcpu=arm920t ;
HAIKU_CCFLAGS += -mcpu=arm920t ;
HAIKU_C++FLAGS += -mcpu=arm920t ;
# Workaround for ld using 32k for alignment despite forcing it in the config...
# should definitely not be needed!
TARGET_KERNEL_LINKFLAGS +=
HAIKU_KERNEL_LINKFLAGS +=
-Wl,-z -Wl,max-page-size=0x1000
-Wl,-z -Wl,common-page-size=0x1000 ;
TARGET_LINKFLAGS +=
HAIKU_LINKFLAGS +=
-Wl,-z -Wl,max-page-size=0x1000
-Wl,-z -Wl,common-page-size=0x1000 ;
+7 -4
View File
@@ -13,6 +13,9 @@ HAIKU_BOARD_LOADER_BASE = 0x80008000 ;
HAIKU_BOARD_LOADER_ENTRY_RAW = 0x80008000 ;
HAIKU_BOARD_LOADER_ENTRY_NBSD = 0x80008008 ;
HAIKU_BOARD_LOADER_ENTRY = $(HAIKU_BOARD_LOADER_ENTRY_NBSD) ;
HAIKU_BOARD_LOADER_FAKE_OS = netbsd ;
# load address for haiku_loader uimage
# (must be different than real load address)
HAIKU_BOARD_LOADER_UIBASE = 0x84000000 ;
@@ -55,9 +58,9 @@ HAIKU_BOARD_SDIMAGE_FILES =
# gcc flags for the specific cpu
#
TARGET_KERNEL_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
TARGET_KERNEL_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
TARGET_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
TARGET_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
HAIKU_KERNEL_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
HAIKU_KERNEL_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
HAIKU_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
HAIKU_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ;
+62
View File
@@ -0,0 +1,62 @@
# Raspberry Pi board-specific definitions
HAIKU_BOARD_DESCRIPTION = "Raspberry Pi" ;
HAIKU_BOOT_PLATFORM = raspberrypi_arm ;
#
# Various hardcoded addresses
#
HAIKU_BOARD_LOADER_BASE = 0x0 ;
HAIKU_BOARD_BOOT_ARCHIVE_BASE = 0x04000000 ;
HAIKU_BOARD_BOOT_ARCHIVE_SIZE = 0x00400000 ;
# TODO: needs to be configured in the config.txt
# ramfsfile=haiku-floppyboot.tgz and ramfsaddr=x
#
# Flash image
#
# N/A for Raspberry Pi
#
# mmc/SD image
#
HAIKU_BOARD_FIRMWARE_URL = http://github.com/raspberrypi/firmware/raw/master/boot/ ;
HAIKU_BOARD_FIRMWARE_FILES =
bootcode.bin
loader.bin
arm224_start.elf # start.elf
LICENSE.broadcom
;
# in MB
HAIKU_BOARD_SDIMAGE_FAT_SIZE = 32 ;
HAIKU_BOARD_SDIMAGE_FAT_FILES =
$(HAIKU_BOARD_FIRMWARE_FILES)
haiku_loader
;
# in MB
HAIKU_BOARD_SDIMAGE_SIZE = 256 ;
#
# gcc flags for the specific cpu
#
HAIKU_KERNEL_CCFLAGS += -mtune=arm1176jzf-s ;
HAIKU_KERNEL_C++FLAGS += -mtune=arm1176jzf-s ;
HAIKU_CCFLAGS += -mtune=arm1176jzf-s ;
HAIKU_C++FLAGS += -mtune=arm1176jzf-s ;
# Workaround for ld using 32k for alignment despite forcing it in the config...
# should definitely not be needed!
HAIKU_KERNEL_LINKFLAGS +=
-Wl,-z -Wl,max-page-size=0x1000
-Wl,-z -Wl,common-page-size=0x1000 ;
HAIKU_LINKFLAGS +=
-Wl,-z -Wl,max-page-size=0x1000
-Wl,-z -Wl,common-page-size=0x1000 ;
+25
View File
@@ -0,0 +1,25 @@
##### CPU Speed
#arm_freq 700
##### Memory layout
#gpu_mem 64
# Memory based on model.. overrides gpu_mem
#gpu_mem_256 64
#gpu_mem_512 64
##### Low level
kernel=haiku_loader
kernel_address=0x0
ramfsfile=haiku-floppyboot.tgz
ramfsaddr=0x04000000
# Skip boot tags for non-linux platforms
disable_commandline_tags=1
#device_tree=bcm2835.dtb
#device_tree_address=0x100
##### UART Settings
# Default is 115200
#init_uart_baud=9600
#init_uart_clock=
+39
View File
@@ -0,0 +1,39 @@
# ACube SAM460ex board-specific definitions
HAIKU_BOARD_DESCRIPTION = "ACube Sam460ex" ;
# must force both since they are set before this file is read.
HAIKU_BOOT_PLATFORM = u-boot ;
#FIXME!!!!!!!!!!!!!!!
#
# Various hardcoded addresses
#
# load address for haiku_loader
# HAIKU_BOARD_LOADER_BASE = 0x00000000 ;
# for debugging:
HAIKU_BOARD_LOADER_BASE = 0x02000000 ;
# entry points (raw binary, and netbsd loader emulation)
HAIKU_BOARD_LOADER_ENTRY_LINUX = 0x02000000 ;
HAIKU_BOARD_LOADER_ENTRY = $(HAIKU_BOARD_LOADER_ENTRY_LINUX) ;
HAIKU_BOARD_LOADER_FAKE_OS = linux ;
# load address for haiku_loader uimage
# (must be different than real load address)
HAIKU_BOARD_LOADER_UIBASE = 0x02000000 ;
HAIKU_BOARD_LOADER_STACK_BASE = 0x02000000 ;
#
# gcc flags for the specific cpu
#
HAIKU_KERNEL_PIC_CCFLAGS += -mcpu=440fp -mtune=440fp ;
HAIKU_KERNEL_PIC_C++FLAGS += -mcpu=440fp -mtune=440fp ;
HAIKU_KERNEL_CCFLAGS += -mcpu=440fp -mtune=440fp ;
HAIKU_KERNEL_C++FLAGS += -mcpu=440fp -mtune=440fp ;
HAIKU_CCFLAGS += -mcpu=440fp -mtune=440fp ;
HAIKU_C++FLAGS += -mcpu=440fp -mtune=440fp ;
+9 -6
View File
@@ -12,6 +12,9 @@ HAIKU_BOARD_LOADER_BASE = 0xa2000000 ;
HAIKU_BOARD_LOADER_ENTRY_RAW = 0xa2000000 ;
HAIKU_BOARD_LOADER_ENTRY_NBSD = 0xa2000008 ;
HAIKU_BOARD_LOADER_ENTRY = $(HAIKU_BOARD_LOADER_ENTRY_NBSD) ;
HAIKU_BOARD_LOADER_FAKE_OS = netbsd ;
# load address for haiku_loader uimage
# (must be different than real load address)
HAIKU_BOARD_LOADER_UIBASE = 0xa4000000 ;
@@ -65,17 +68,17 @@ HAIKU_BOARD_SDIMAGE_FILES =
# gcc flags for the specific cpu
#
TARGET_KERNEL_CCFLAGS += -mcpu=xscale ;
TARGET_KERNEL_C++FLAGS += -mcpu=xscale ;
TARGET_CCFLAGS += -mcpu=xscale ;
TARGET_C++FLAGS += -mcpu=xscale ;
HAIKU_KERNEL_CCFLAGS += -mcpu=xscale ;
HAIKU_KERNEL_C++FLAGS += -mcpu=xscale ;
HAIKU_CCFLAGS += -mcpu=xscale ;
HAIKU_C++FLAGS += -mcpu=xscale ;
# Workaround for ld using 32k for alignment despite forcing it in the config...
# should definitely not be needed!
TARGET_KERNEL_LINKFLAGS +=
HAIKU_KERNEL_LINKFLAGS +=
-Wl,-z -Wl,max-page-size=0x1000
-Wl,-z -Wl,common-page-size=0x1000 ;
TARGET_LINKFLAGS +=
HAIKU_LINKFLAGS +=
-Wl,-z -Wl,max-page-size=0x1000
-Wl,-z -Wl,common-page-size=0x1000 ;
+25 -3
View File
@@ -2,7 +2,7 @@
# Parameters <haiku sourcedir> <buildtools dir> <haiku output dir>
# Influential environmental variable:
# * haikuRequiredLegacyGCCVersion: The requrired version of the gcc. Will be
# * haikuRequiredLegacyGCCVersion: The required version of the gcc. Will be
# checked against the version in the buildtools directory.
# get and check the parameters
@@ -89,6 +89,15 @@ mkdir -p $installDir $objDir $binutilsObjDir $gccObjDir $tmpIncludeDir \
$tmpLibDir || exit 1
mkdir -p $installDir/lib/gcc-lib/i586-pc-haiku/$haikuRequiredLegacyGCCVersion
# force the POSIX locale, as the build (makeinfo) might choke otherwise
export LC_ALL=POSIX
# drop an multiple job arguments from MAKEFLAGS
if [ ! -z "$MAKEFLAGS" ]; then
export MAKEFLAGS=$(echo $MAKEFLAGS | sed -e 's/-j\s*[0-9][0-9]*//g')
fi
# build binutils
cd $binutilsObjDir
CFLAGS="-O2" CXXFLAGS="-O2" $buildToolsDir/binutils/configure \
@@ -109,7 +118,7 @@ copy_headers()
sourceDir=$1
targetDir=$2
headers="`find $sourceDir -name \*\.h | grep -v /.svn`"
headers="`find $sourceDir -name \*\.h`"
headers="`echo $headers | sed -e s@$sourceDir/@@g`"
for f in $headers; do
headerTargetDir=$targetDir/`dirname $f`
@@ -122,13 +131,26 @@ copy_headers $haikuSourceDir/headers/config $tmpIncludeDir/config
copy_headers $haikuSourceDir/headers/os $tmpIncludeDir/os
copy_headers $haikuSourceDir/headers/posix $tmpIncludeDir/posix
# Touch some files generated by bison, so that bison won't run to update them.
# Fixes issues with newer bison versions.
# And while at it, touch gperf target, too (as gperf may not be installed)
(cd $buildToolsDir/gcc/gcc; touch c-parse.c c-parse.h cexp.c cp/parse.c \
cp/parse.h c-gperf.h)
# configure gcc
cd $gccObjDir
case `uname` in
Darwin)
# GCC 2 compiled for x86_64 OS X is broken, compile for i386.
export CC="gcc -arch i386"
;;
esac
CFLAGS="-O2 -U_FORTIFY_SOURCE" CXXFLAGS="-O2" $buildToolsDir/gcc/configure \
--prefix=$installDir \
--target=i586-pc-haiku --disable-nls --enable-shared=yes \
--enable-languages=c,c++ --with-headers=$tmpIncludeDir \
--with-libs=$tmpLibDir || exit 1
unset CC
# hack the Makefile to avoid trouble with stuff we don't need anyway
sedExpr=
@@ -155,7 +177,7 @@ make install-gcc-cross || {
# Remove the math.h gcc header. It has been generated by fixincludes
# (unconditional hack: math_huge_val_ifndef) from ours and it is semantically
# equivalent.
rm $installDir/lib/gcc-lib/i586-pc-haiku/$haikuRequiredLegacyGCCVersion/include/math.h
rm -f $installDir/lib/gcc-lib/i586-pc-haiku/$haikuRequiredLegacyGCCVersion/include/math.h
# cleanup
+80 -9
View File
@@ -28,8 +28,12 @@ export MAKE
case $haikuMachine in
x86_64-*)
binutilsConfigureArgs="--enable-multilib"
gccConfigureArgs="--enable-multilib"
# GCC's default is to enable multilib, but there is a bug when
# explicitly using --enable-multilib that causes a build
# failure
binutilsConfigureArgs=""
gccConfigureArgs=""
kernelCcFlags="-mno-red-zone"
;;
m68k-*)
binutilsConfigureArgs="--enable-multilib"
@@ -42,6 +46,7 @@ arm-*)
*)
binutilsConfigureArgs="--disable-multilib"
gccConfigureArgs="--disable-multilib"
kernelCcFlags=
;;
esac
@@ -90,23 +95,41 @@ fi
# (which apparently doesn't work reliably on all the different host
# configurations and changes files which in turn appear as local changes
# to the VCS).
find $binutilsSourceDir -name \*.info -print0 | xargs -0 touch
find $gccSourceDir -name \*.info -print0 | xargs -0 touch
find $binutilsSourceDir $gccSourceDir -name \*.info -print0 | xargs -0 touch
# create the object and installation directories for the cross compilation tools
installDir=$haikuOutputDir/cross-tools
objDir=$haikuOutputDir/cross-tools-build
binutilsObjDir=$objDir/binutils
gccObjDir=$objDir/gcc
stdcxxObjDir=$objDir/stdcxx
tmpIncludeDir=$objDir/sysincludes
tmpLibDir=$objDir/syslibs
rm -rf $installDir $objDir
mkdir -p $installDir $objDir $binutilsObjDir $gccObjDir $tmpIncludeDir \
$tmpLibDir || exit 1
mkdir -p $installDir $objDir $binutilsObjDir $gccObjDir $stdcxxObjDir \
$tmpIncludeDir $tmpLibDir || exit 1
mkdir -p $installDir/lib/gcc/$haikuMachine/$gccVersion
if [ "$HAIKU_USE_GCC_GRAPHITE" = 1 ]; then
cloogSourceDir=$buildToolsDir/cloog
gmpSourceDir=$buildToolsDir/gcc/gmp
pplSourceDir=$buildToolsDir/ppl
pplObjDir=$objDir/ppl
gmpObjDir=$objDir/gmp
cloogObjDir=$objDir/cloog
mkdir -p $pplObjDir $gmpObjDir $cloogObjDir || exit 1
gccConfigureArgs="$gccConfigureArgs --with-cloog=$installDir \
--enable-cloog-backend=isl --with-ppl=$installDir \
--disable-cloog-version-check --with-gmp=$installDir \
--with-host-libstdcxx=\"-lstdc++\""
fi
# force the POSIX locale, as the build (makeinfo) might choke otherwise
export LC_ALL=POSIX
# build binutils
cd $binutilsObjDir
@@ -118,6 +141,32 @@ $MAKE $additionalMakeArgs install || exit 1
export PATH=$PATH:$installDir/bin
if [ "$HAIKU_USE_GCC_GRAPHITE" = 1 ]; then
# build gmp
cd $gmpObjDir
$gmpSourceDir/configure --prefix=$installDir \
--disable-shared --enable-cxx || exit 1
$MAKE $additionalMakeArgs || exit 1
$MAKE $additionalMakeArgs install || exit 1
# build ppl
cd $pplObjDir
CFLAGS="-O2" CXXFLAGS="-O2" $pplSourceDir/configure --prefix=$installDir \
--disable-nls --disable-shared --disable-watchdog \
--disable-maintainer-mode || exit 1
$MAKE $additionalMakeArgs AUTOCONF:=true AUTOHEADER:=true ACLOCAL:=true \
AUTOMAKE:=true || exit 1
$MAKE $additionalMakeArgs install AUTOCONF:=true AUTOHEADER:=true \
ACLOCAL:=true AUTOMAKE:=true || exit 1
# build cloog
cd $cloogObjDir
CFLAGS="-O2" CXXFLAGS="-O2" $cloogSourceDir/configure \
--prefix=$installDir --disable-nls --disable-shared \
--with-gmp-prefix=$installDir || exit 1
$MAKE $additionalMakeArgs || exit 1
$MAKE $additionalMakeArgs install || exit 1
fi
# build gcc
@@ -127,7 +176,7 @@ copy_headers()
sourceDir=$1
targetDir=$2
headers="$(find $sourceDir -name \*\.h | grep -v /.svn)"
headers="$(find $sourceDir -name \*\.h)"
headers="$(echo $headers | sed -e s@$sourceDir/@@g)"
for f in $headers; do
headerTargetDir=$targetDir/$(dirname $f)
@@ -143,8 +192,8 @@ copy_headers $haikuSourceDir/headers/posix $tmpIncludeDir/posix
# configure gcc
cd $gccObjDir
CFLAGS="-O2" CXXFLAGS="-O2" $gccSourceDir/configure --prefix=$installDir \
--target=$haikuMachine --disable-nls --disable-shared \
--enable-languages=c,c++ \
--target=$haikuMachine --disable-nls --disable-shared --with-system-zlib \
--enable-languages=c,c++ --enable-lto --enable-frame-pointer \
--with-headers=$tmpIncludeDir --with-libs=$tmpLibDir \
$gccConfigureArgs || exit 1
@@ -160,6 +209,28 @@ $MAKE $additionalMakeArgs install || {
exit 1
}
# build libraries for the kernel if the target arch requires it
if [ -n "$kernelCcFlags" ]; then
$MAKE -C $haikuMachine/libgcc clean
$MAKE -C $haikuMachine/libgcc CFLAGS="-g -O2 $kernelCcFlags" || {
echo "Error: Building kernel libgcc failed." >&2
exit 1
}
cp $haikuMachine/libgcc/libgcc.a \
$installDir/$haikuMachine/lib/libgcc-kernel.a || exit 1
$MAKE -C $haikuMachine/libstdc++-v3/libsupc++ clean
$MAKE -C $haikuMachine/libstdc++-v3/libsupc++ CFLAGS="-g -O2 $kernelCcFlags" \
CXXFLAGS="-g -O2 $kernelCcFlags" || {
echo "Error: Building kernel libsupc++ failed." >&2
exit 1
}
cp $haikuMachine/libstdc++-v3/libsupc++/.libs/libsupc++.a \
$installDir/$haikuMachine/lib/libsupc++-kernel.a || exit 1
fi
# cleanup
# remove the system headers from the installation dir
+5 -4
View File
@@ -17,7 +17,6 @@ set -o errexit
# dontClearImage
# isVMwareImage
# optionalPackageDescriptions
# stripOptionalPackageDebugSymbols
#
# addattr
# copyattr
@@ -34,6 +33,7 @@ set -o errexit
# The following is only for cd types:
# generate_attribute_stores
# isCD
# stripCommand
#
if [ $# -gt 0 ]; then
. $1
@@ -154,16 +154,17 @@ stripDebugInfo()
if [ "$elfMarker" = 'ELF' ]; then
# make user-writable first -- some files aren't
chmod u+w "$file"
strip --strip-debug "$file"
"$stripCommand" --strip-debug "$file"
fi
}
extractFile()
{
# extractFile <archive> <directory> <extractedSubDir>
# extractFile <archive> <directory> <extractedSubDir> <stripDebugSymbols>
archiveFile=$1
targetExtractedDir=$2
extractedSubDir=$3
stripDebugSymbols=$4
extractDir=$tmpDir/extract
$rmAttrs -rf "$extractDir"
@@ -200,7 +201,7 @@ extractFile()
rm $extractDir/.OptionalPackageDescription
fi
if [ "$stripOptionalPackageDebugSymbols" = "1" ]; then
if [ "$stripDebugSymbols" = "1" ]; then
# strip executables in common/bin
if [ -d $extractDir/common/bin ]; then
for file in `find $extractDir/common/bin -type f -a -perm +100 \
+6 -3
View File
@@ -8,7 +8,7 @@ determineGitRevision()
revision=`cat ${haikuBuildOutputDir}/haiku-revision 2>/dev/null`
lastBuiltRevision=`cat ${haikuBuildOutputDir}/last-built-revision \
2>/dev/null`
localRev=`git rev-list -n1 HEAD`
localRev=`git rev-parse HEAD`
# only determine the haiku-revision if anything has changed from
# last build
@@ -16,7 +16,10 @@ determineGitRevision()
# the revision we use is the description of HEAD with respect to the
# last reachable hrev-(haiku-revision-)tag
revision=`git describe --dirty --tags --match=hrev*`
if echo "$revision" | grep -- '-' >/dev/null; then
if [ -z "$revision" ]; then
# failed to find any hrev tags, use short hash instead
revision=`git rev-parse --short HEAD`
elif echo "$revision" | grep -- '-' >/dev/null; then
# HEAD is not directly a changeset from Haiku's central repo, so we
# add the current branch name as additional info
branchName=`git branch | grep '*' | cut -b 3-`
@@ -59,7 +62,7 @@ determineHaikuRevision()
grep --max-count=1 "(svn r" |
$SED -n -e 's,(svn r\(.*\)).*,\1,p'`
fi
if [ "$revision" = "" ]; then
if [ -z "$revision" ]; then
revision=0
fi
echo $revision >${haikuBuildOutputDir}/haiku-revision
Vendored
+73 -11
View File
@@ -63,6 +63,8 @@ options:
as first option!]
--use-gcc-pipe Build with GCC option -pipe. Speeds up the build
process, but uses more memory.
--use-gcc-graphite Build with GCC Graphite engine for loop
optimizations. Only for gcc 4.
--use-32bit Use -m32 flag on 64bit host gcc compiler.
--use-xattr Use Linux xattr support for BeOS attribute
emulation. Warning: Make sure your file system
@@ -76,6 +78,7 @@ environment variables:
HAIKU_OBJCOPY The objcopy to be used. Defaults to "objcopy".
HAIKU_RANLIB The static library indexer. Defaults to "ranlib".
HAIKU_YASM The yasm assembler (x86 only).
HAIKU_STRIP The strip command. Defaults to "strip".
HAIKU_CPPFLAGS The preprocessor flags. Defaults to "".
HAIKU_CCFLAGS The C flags. Defaults to "".
HAIKU_CXXFLAGS The C++ flags. Defaults to "".
@@ -155,6 +158,13 @@ standard_gcc_settings()
HAIKU_GCC_RAW_VERSION=`$HAIKU_CC -dumpversion`
HAIKU_GCC_MACHINE=`$HAIKU_CC -dumpmachine`
if [ "$HAIKU_USE_GCC_GRAPHITE" != 0 ]; then
UNUSED=`echo "int main() {}" | $HAIKU_CC -xc -c -floop-block - 2>&1`
if [ $? != 0 ]; then
echo "GCC Graphite loop optimizations cannot be used"
HAIKU_USE_GCC_GRAPHITE=0
fi
fi
HAIKU_GCC_LIB_DIR=${gccdir}
HAIKU_GCC_LIBGCC=${gccdir}/libgcc.a
@@ -174,6 +184,17 @@ standard_gcc_settings()
HAIKU_STATIC_LIBSUPCXX=`$HAIKU_CC -print-file-name=libsupc++.a`
HAIKU_SHARED_LIBSUPCXX=`$HAIKU_CC -print-file-name=libsupc++.so`
# If the architecture has separate runtime libraries for the
# kernel, use them.
HAIKU_KERNEL_LIBGCC=`$HAIKU_CC -print-file-name=libgcc-kernel.a`
if [ $HAIKU_KERNEL_LIBGCC = libgcc-kernel.a ]; then
HAIKU_KERNEL_LIBGCC=$HAIKU_GCC_LIBGCC
fi
HAIKU_KERNEL_LIBSUPCXX=`$HAIKU_CC -print-file-name=libsupc++-kernel.a`
if [ $HAIKU_KERNEL_LIBSUPCXX = libsupc++-kernel.a ]; then
HAIKU_KERNEL_LIBSUPCXX=$HAIKU_STATIC_LIBSUPCXX
fi
local headers
if [ -d $gccdir/../../../../$HAIKU_GCC_MACHINE/include/c++/$HAIKU_GCC_RAW_VERSION ]; then
headers=$gccdir/../../../../$HAIKU_GCC_MACHINE/include/c++/$HAIKU_GCC_RAW_VERSION
@@ -226,6 +247,21 @@ standard_gcc_settings()
echo "Please download it from www.haiku-os.org...";
exit 1;
fi
HAIKU_KERNEL_LIBGCC=$HAIKU_GCC_LIBGCC
HAIKU_KERNEL_LIBSUPCXX=
;;
esac
case $HAIKU_GCC_MACHINE in
x86_64-*)
# Boot loader is 32-bit, need the 32-bit libs.
HAIKU_BOOT_LIBGCC=`$HAIKU_CC -m32 -print-libgcc-file-name`
HAIKU_BOOT_LIBSUPCXX=`$HAIKU_CC -m32 -print-file-name=libsupc++.a`
;;
*)
HAIKU_BOOT_LIBGCC=$HAIKU_GCC_LIBGCC
HAIKU_BOOT_LIBSUPCXX=$HAIKU_STATIC_LIBSUPCXX
;;
esac
}
@@ -304,6 +340,7 @@ HAIKU_ENABLE_MULTIUSER=0
HAIKU_DISTRO_COMPATIBILITY=default
TARGET_PLATFORM=haiku
HAIKU_USE_GCC_PIPE=0
HAIKU_USE_GCC_GRAPHITE=0
HAIKU_HOST_USE_32BIT=0
HAIKU_HOST_USE_XATTR=0
HOST_GCC_LD=`gcc -print-prog-name=ld`
@@ -311,7 +348,7 @@ HOST_GCC_OBJCOPY=`gcc -print-prog-name=objcopy`
SFDISK_BINARY=sfdisk
HOST_SFDISK=$SFDISK_BINARY
haikuRequiredLegacyGCCVersion="2.95.3-haiku-130425"
haikuRequiredLegacyGCCVersion="2.95.3-haiku-130504"
export haikuRequiredLegacyGCCVersion
# version of legacy gcc required to build haiku
@@ -320,7 +357,9 @@ set_default_value HAIKU_CC gcc
set_default_value HAIKU_LD ld
set_default_value HAIKU_OBJCOPY objcopy
set_default_value HAIKU_RANLIB ranlib
set_default_value HAIKU_ELFEDIT elfedit
set_default_value HAIKU_YASM yasm
set_default_value HAIKU_STRIP strip
set_default_value HAIKU_CPPFLAGS ""
set_default_value HAIKU_CCFLAGS ""
set_default_value HAIKU_CXXFLAGS ""
@@ -368,9 +407,9 @@ while [ $# -gt 0 ] ; do
buildCrossToolsScript="${buildCrossToolsScript}_gcc4"
case "$2" in
x86) HAIKU_GCC_MACHINE=i586-pc-haiku;;
x86_64) HAIKU_GCC_MACHINE=x86_64-pc-haiku; targetArch=x86_64;;
x86_64) HAIKU_GCC_MACHINE=x86_64-unknown-haiku; targetArch=x86_64;;
ppc) HAIKU_GCC_MACHINE=powerpc-apple-haiku; targetArch=ppc;;
m68k) HAIKU_GCC_MACHINE=m68k-unknown-haiku; targetArch=m86k;;
m68k) HAIKU_GCC_MACHINE=m68k-unknown-haiku; targetArch=m68k;;
arm) HAIKU_GCC_MACHINE=arm-unknown-haiku; targetArch=arm;;
mipsel) HAIKU_GCC_MACHINE=mipsel-unknown-haiku; targetArch=mips;;
*) echo "Unsupported target architecture: $2"
@@ -406,6 +445,7 @@ while [ $# -gt 0 ] ; do
-j*) buildCrossToolsJobs="$1"; shift 1;;
--target=*) TARGET_PLATFORM=`echo $1 | cut -d'=' -f2-`; shift 1;;
--use-gcc-pipe) HAIKU_USE_GCC_PIPE=1; shift 1;;
--use-gcc-graphite) HAIKU_USE_GCC_GRAPHITE=1; shift 1;;
--use-32bit) HAIKU_HOST_USE_32BIT=1; shift 1;;
--use-xattr) HAIKU_HOST_USE_XATTR=1; shift 1;;
*) echo Invalid argument: \`$1\'; exit 1;;
@@ -447,15 +487,18 @@ for sfdiskDir in /sbin /usr/sbin /usr/local/sbin ; do
fi
done
# check for case-sensitive filesystem if on darwin
if [ $HOST_PLATFORM = "darwin" ]; then
diskutil info $(pwd) | grep -i "case-sensitive" > /dev/null
if [ $? != 0 ]; then
# check for case-sensitive filesystem
mkdir haikuCaseTest 2>/dev/null
mkdir haikucasetest 2>/dev/null
caseInsensitive=$?
rmdir haikuCaseTest haikucasetest 2>/dev/null
if [ $caseInsensitive != 0 ]; then
echo "You need a case-sensitive file-system to build Haiku."
echo "Please see the following guide on how to set one up:"
echo "http://haiku-os.org/documents/dev/how_to_build_haiku_on_mac_os_x"
exit 1
if [ $HOST_PLATFORM = "darwin" ]; then
echo "You can create a case-sensitive disk image using Disk Utility and use"
echo "it to store the Haiku sources on."
fi
exit 1
fi
# create output directory
@@ -463,6 +506,7 @@ mkdir -p "$buildOutputDir" || exit 1
# build cross tools from sources
if [ -n "$buildCrossTools" ]; then
export HAIKU_USE_GCC_GRAPHITE
"$buildCrossToolsScript" $buildCrossToolsMachine "$sourceDir" \
"$buildCrossTools" "$outputDir" $buildCrossToolsJobs || exit 1
crossToolsPrefix="$outputDir/cross-tools/bin/${HAIKU_GCC_MACHINE}-"
@@ -475,11 +519,21 @@ if [ -n "$crossToolsPrefix" ]; then
get_build_tool_path LD ld
get_build_tool_path OBJCOPY objcopy
get_build_tool_path RANLIB ranlib
get_build_tool_path STRIP strip
fi
# prepare gcc settings
standard_gcc_settings
# cross tools for gcc4 builds
if [ -n "$crossToolsPrefix" ]; then
case $HAIKU_GCC_RAW_VERSION in
4.*)
get_build_tool_path ELFEDIT elfedit
;;
esac
fi
# check whether the Haiku compiler really targets Haiku or BeOS
case "$HAIKU_GCC_MACHINE" in
*-*-haiku) ;;
@@ -508,6 +562,7 @@ HAIKU_INCLUDE_3RDPARTY ?= "${HAIKU_INCLUDE_3RDPARTY}" ;
HAIKU_ENABLE_MULTIUSER ?= "${HAIKU_ENABLE_MULTIUSER}" ;
HAIKU_DISTRO_COMPATIBILITY ?= "${HAIKU_DISTRO_COMPATIBILITY}" ;
HAIKU_USE_GCC_PIPE ?= "${HAIKU_USE_GCC_PIPE}" ;
HAIKU_USE_GCC_GRAPHITE ?= "${HAIKU_USE_GCC_GRAPHITE}" ;
HAIKU_HOST_USE_32BIT ?= "${HAIKU_HOST_USE_32BIT}" ;
HAIKU_HOST_USE_XATTR ?= "${HAIKU_HOST_USE_XATTR}" ;
@@ -523,6 +578,11 @@ HAIKU_STATIC_LIBSUPC++ ?= ${HAIKU_STATIC_LIBSUPCXX} ;
HAIKU_SHARED_LIBSUPC++ ?= ${HAIKU_SHARED_LIBSUPCXX} ;
HAIKU_C++_HEADERS_DIR ?= ${HAIKU_CXX_HEADERS_DIR} ;
HAIKU_KERNEL_LIBGCC ?= ${HAIKU_KERNEL_LIBGCC} ;
HAIKU_KERNEL_LIBSUPC++ ?= ${HAIKU_KERNEL_LIBSUPCXX} ;
HAIKU_BOOT_LIBGCC ?= ${HAIKU_BOOT_LIBGCC} ;
HAIKU_BOOT_LIBSUPC++ ?= ${HAIKU_BOOT_LIBSUPCXX} ;
HAIKU_BUILD_ATTRIBUTES_DIR ?= ${HAIKU_BUILD_ATTRIBUTES_DIR} ;
HAIKU_AR ?= ${HAIKU_AR} ;
@@ -530,10 +590,12 @@ HAIKU_CC ?= ${HAIKU_CC} ;
HAIKU_LD ?= ${HAIKU_LD} ;
HAIKU_OBJCOPY ?= ${HAIKU_OBJCOPY} ;
HAIKU_RANLIB ?= ${HAIKU_RANLIB} ;
HAIKU_ELFEDIT ?= ${HAIKU_ELFEDIT} ;
HAIKU_YASM ?= ${HAIKU_YASM} ;
HAIKU_STRIP ?= ${HAIKU_STRIP} ;
HAIKU_CPPFLAGS ?= ${HAIKU_CPPFLAGS} ;
HAIKU_CCFLAGS ?= ${HAIKU_CCFLAGS} ;
HAIKU_CXXFLAGS ?= ${HAIKU_CXXFLAGS} ;
HAIKU_C++FLAGS ?= ${HAIKU_CXXFLAGS} ;
HAIKU_LDFLAGS ?= ${HAIKU_LDFLAGS} ;
HAIKU_ARFLAGS ?= ${HAIKU_ARFLAGS} ;
HAIKU_UNARFLAGS ?= ${HAIKU_UNARFLAGS} ;
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+14 -37
View File
@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2010 Haiku, Inc.
# Copyright (c) 2010-2012 Haiku, Inc.
# Distributed under the terms of the MIT License.
#
# Authors:
@@ -31,6 +31,7 @@ VIEW='View licenses'
ABORT='Abort installation'
OK='I agree to the licenses. Install firmwares.'
baseURL='http://www.haiku-files.org/files/wifi-firmwares'
firmwareDir=`finddir B_SYSTEM_DATA_DIRECTORY`/firmware
tempDir=`finddir B_COMMON_TEMP_DIRECTORY`/wifi-firmwares
driversDir=`finddir B_SYSTEM_ADDONS_DIRECTORY`/kernel/drivers
@@ -119,22 +120,6 @@ function DownloadFileIfNotCached()
local msg="As a result, ${driver}'s firmware will not be installed."
alert --warning "$error $msg"
fi
}
function OpenIntelFirmwareWebpage()
{
# OpenIntelFirmwareWebpage <url> <file>
local url="$1"
local file="$2"
echo "Downloading $file ..."
alert --info "A webpage is going to open. Download and save $file in ${firmwareDir}/${driver}/"
open "$url"
alert --info "Click OK after the $file has been saved in ${firmwareDir}/${driver}/"
}
@@ -142,7 +127,7 @@ function SetFirmwarePermissions()
{
cd ${firmwareDir}/${driver}/
for file in * ; do
if [ "$file" != "$driver" ] ; then
if [ "$file" != "$driver" ] && [ -f "$file" ] ; then
chmod a=r $file
fi
done
@@ -175,18 +160,14 @@ function PostFirmwareInstallation()
function InstallIpw2100()
{
driver='ipw2100'
driver='iprowifi2100'
PreFirmwareInstallation
# Extract contents.
local file='ipw2100-fw-1.3.tgz'
# In case the file doesn's exist.
if [ ! -e ${firmwareDir}/${driver}/$file ] ; then
url='http://ipw2100.sourceforge.net/firmware.php?fid=4'
OpenIntelFirmwareWebpage $url $file
fi
# TODO: handle when $file hasn't been saved in ${firmwareDir}/${driver}/
local url="${baseURL}/intel/${file}"
local dir="${firmwareDir}/${driver}"
DownloadFileIfNotCached $url $file $dir
# Install the firmware & license file by extracting in place.
cd "${firmwareDir}/${driver}"
@@ -203,13 +184,9 @@ function InstallIprowifi2200()
# Extract contents.
local file='ipw2200-fw-3.1.tgz'
# In case the file doesn't exist.
if [ ! -e ${firmwareDir}/${driver}/$file ] ; then
url=http://ipw2200.sourceforge.net/firmware.php?fid=8
OpenIntelFirmwareWebpage $url $file
fi
# TODO: handle when $file hasn't been saved in ${firmwareDir}/${driver}/
local url="${baseURL}/intel/${file}"
local dir="${firmwareDir}/${driver}"
DownloadFileIfNotCached $url $file $dir
cd "$tempDir"
gunzip < "${firmwareDir}/${driver}/$file" | tar xf -
@@ -255,7 +232,7 @@ function InstallMarvell88w8335()
# Download firmware archive.
local file="malo-firmware-1.4.tgz"
local url='http://www.nazgul.ch/malo/malo-firmware-1.4.tgz'
local url="${baseURL}/marvell/${file}"
local dir="${firmwareDir}/${driver}"
DownloadFileIfNotCached $url $file "$dir"
if [ $result -gt 0 ]; then
@@ -280,7 +257,7 @@ function BuildBroadcomFWCutter()
# Download & extract b43-fwcutter.
local file="b43-fwcutter-012.tar.bz2"
local dir="${firmwareDir}/${driver}/b43-fwcutter"
local url="http://bu3sch.de/b43/fwcutter/b43-fwcutter-012.tar.bz2"
local url="${baseURL}/b43/fwcutter/${file}"
DownloadFileIfNotCached $url $file $dir
if [ $result -gt 0 ]; then
return $result
@@ -292,7 +269,7 @@ function BuildBroadcomFWCutter()
# Download additonal files for building b43-fwcutter.
cd b43-fwcutter-012
local baseURL='http://svn.haiku-os.org/haiku/haiku/trunk/src/system/libroot/posix/glibc'
local baseURL='http://cgit.haiku-os.org/haiku/plain/src/system/libroot/posix/glibc'
DownloadFileIfNotCached ${baseURL}/string/byteswap.h byteswap.h $dir
if [ $result -gt 0 ]; then
return $result
@@ -330,7 +307,7 @@ function CutAndInstallBroadcomFirmware()
# Download firmware.
local file="wl_apsta-3.130.20.0.o"
local dir="${firmwareDir}/${driver}"
local url='http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o'
local url="${baseURL}/b43/${file}"
DownloadFileIfNotCached $url $file $dir
if [ $result -gt 0 ]; then
return $result
+14 -4
View File
@@ -2,8 +2,9 @@
#
# setgcc [ <arch> ] [ <gcc> ]
abiDir=/boot/develop/abi/
abiDir=/boot/develop/abi
abiLink=$abiDir/current
libDir=/boot/develop/lib
usage()
{
@@ -13,7 +14,7 @@ Usage: $0 [ <arch> ] [ <gcc> ]
Sets the current gcc version, respectively prints it, if no arguments are
given.
<arch> - The architecture to set. Supported values: "x86".
<arch> - The architecture to set. Supported values: "x86", "ppc".
<gcc> - The major gcc version to set. Supported values: "gcc2", "gcc4".
EOF
@@ -46,6 +47,7 @@ while [ $# -gt 0 ]; do
case $1 in
-h,--help) usage; exit;;
x86) arch=$1;;
ppc) arch=$1;;
gcc2|gcc4) gcc=$1;;
*) usage; exit 1;;
esac
@@ -76,8 +78,9 @@ if [ -z "$gcc" ]; then
fi
fi
# check whether the gcc exits
if [ ! -e $abiDir/$arch/$gcc/tools/current/bin/gcc ]; then
# check whether the gcc exists
count=`ls -l $abiDir/$arch/$gcc/tools/current/bin/*gcc 2>/dev/null | wc -l`
if [ $count -eq 0 ]; then
echo "Can't set GCC $arch/$gcc -- not installed." >&2
exit 1
fi
@@ -87,3 +90,10 @@ fi
echo "Failed to set GCC $arch/$gcc." >&2
exit 1
}
# create the lib symlink
libLink=$libDir/$arch
( rm -f $libLink && ln -sf $abiDir/$arch/$gcc/lib $libLink ) || {
echo "Failed to set lib $arch/$gcc." >&2
exit 1
}
+1 -1
View File
@@ -1,7 +1,7 @@
#!/bin/bash
userGuideURL="\
http://svn.haiku-os.org/haiku/haiku/trunk/docs/userguide/en/contents.html"
http://cgit.haiku-os.org/haiku/plain/docs/userguide/en/contents.html"
userGuideDir=/boot/system/documentation/userguide/
userGuide=$userGuideDir/en/contents.html
localizedUserGuide=$userGuideDir/"$LANG"/contents.html
+1 -1
View File
@@ -1,7 +1,7 @@
#!/bin/bash
welcomeURL="\
http://svn.haiku-os.org/haiku/haiku/trunk/docs/welcome/welcome_en.html"
http://cgit.haiku-os.org/haiku/plain/docs/welcome/welcome_en.html"
welcomeDir=/boot/system/documentation/welcome/
welcomeFile=$welcomeDir/welcome_en.html
localizedWelcomeFile=$welcomeDir/welcome_"$LANG".html
@@ -1,8 +1,8 @@
1 belarusian application/x-vnd.Haiku-BFSAddOn 1074880496
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (Пераважна для маленькіх файлаў)
1 belarusian x-vnd.Haiku-BFSAddOn 1074880496
Enable query support BFS_Initialize_Parameter Актывізаваць падтрымку запытаў
2048 (Recommended) BFS_Initialize_Parameter 2048 (Рэкамендуецца)
8192 (Mostly large files) BFS_Initialize_Parameter 8192 (Пераважна для велькіх файлаў)
Blocksize: BFS_Initialize_Parameter Памер блоку:
Disabling query support may speed up certain file system operations, but should only be used if one is absolutely certain that one will not need queries.\nAny volume that is intended for booting Haiku must have query support enabled. BFS_Initialize_Parameter Вы можаце не актывізаваць падтрымку запытаў каб паскорыць некаторыя аперацыі файлавай сістэмы. Але майце на ўвазе, што вы не будзеце мець магчымасці карыстацца на гэтым падзеле пошукавымі запытами.\nТаксама, падзел абавязаны мець падтрымку запытаў актыўнаю, калі ён будзе з´яўляецца загрузачным.
Enable query support BFS_Initialize_Parameter Актывізаваць падтрымку запытаў
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (Пераважна для маленькіх файлаў)
Blocksize: BFS_Initialize_Parameter Памер блоку:
Name: BFS_Initialize_Parameter Імя:
@@ -1,8 +1,8 @@
1 german application/x-vnd.Haiku-BFSAddOn 1074880496
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (überwiegend kleine Dateien)
1 german x-vnd.Haiku-BFSAddOn 1074880496
Enable query support BFS_Initialize_Parameter Query-Unterstützung aktivieren
2048 (Recommended) BFS_Initialize_Parameter 2048 (empfohlen)
8192 (Mostly large files) BFS_Initialize_Parameter 8192 (überwiegend große Dateien)
Blocksize: BFS_Initialize_Parameter Blockgröße:
Disabling query support may speed up certain file system operations, but should only be used if one is absolutely certain that one will not need queries.\nAny volume that is intended for booting Haiku must have query support enabled. BFS_Initialize_Parameter Eine deaktivierte Query-Unterstützung kann gewisse Zugriffe im Dateisystem beschleunigen. Man muss sich dabei allerdings sicher sein, dass man auch zukünftig niemals Queries auf dieser Partition brauchen wird.\nUm Haiku von einer Partition booten zu können, wird die Query-Unterstützung unbedingt benötigt.
Enable query support BFS_Initialize_Parameter Query-Unterstützung aktivieren
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (überwiegend kleine Dateien)
Blocksize: BFS_Initialize_Parameter Blockgröße:
Name: BFS_Initialize_Parameter Name:
@@ -0,0 +1,8 @@
1 greek, modern (1453-) x-vnd.Haiku-BFSAddOn 1074880496
Enable query support BFS_Initialize_Parameter Ενεργοποίηση υποστήριξης ερωτημάτων
2048 (Recommended) BFS_Initialize_Parameter 2048(Συνιστώμενη)
8192 (Mostly large files) BFS_Initialize_Parameter 8192(Κυρίως μεγάλα αρχεία)
Disabling query support may speed up certain file system operations, but should only be used if one is absolutely certain that one will not need queries.\nAny volume that is intended for booting Haiku must have query support enabled. BFS_Initialize_Parameter Απενεργοποιώντας την υποστήριξη ερωτημάτων μπορεί να επιτανχύνει ορισμένες λειτουργίες του συστήματος αρχείων. Αλλά αυτό μόνο αν είναι βέβαιο πως δεν κάνουν χρήση των ερωτημάτων. \n Κάθε τόμος που προορίζεται για την εκκίνηση του Haiku πρέπει να έχει ενεργοποιημένη την υποστήριξη των ερωτημάτων.
1024 (Mostly small files) BFS_Initialize_Parameter 1024(Κυρίως μικρά αρχεία)
Blocksize: BFS_Initialize_Parameter Μέγεθος μπλόκ:
Name: BFS_Initialize_Parameter Όνομα:
@@ -1,8 +1,8 @@
1 finnish application/x-vnd.Haiku-BFSAddOn 1074880496
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (Enimmäkseen pienet tiedostot)
1 finnish x-vnd.Haiku-BFSAddOn 1074880496
Enable query support BFS_Initialize_Parameter Ota käyttöön kyselytuki
2048 (Recommended) BFS_Initialize_Parameter 2048 (Suositeltu)
8192 (Mostly large files) BFS_Initialize_Parameter 8192 (Enimmäkseen laajat tiedostot)
Blocksize: BFS_Initialize_Parameter Lohkokoko:
Disabling query support may speed up certain file system operations, but should only be used if one is absolutely certain that one will not need queries.\nAny volume that is intended for booting Haiku must have query support enabled. BFS_Initialize_Parameter Kyselytuen ottaminen pois käytöstä nopeuttaa tiettyjä tiedostojärjestelmätoimia, mutta sitä pitäisi käyttää ainoastaan, jos ollaan ehdottoman varmoja, että kukaan ei tarvitse kyselyjä.\nKaikissa Haikun alkulataustaltioissa on oltava kysely käytössä.
Enable query support BFS_Initialize_Parameter Ota käyttöön kyselytuki
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (Enimmäkseen pienet tiedostot)
Blocksize: BFS_Initialize_Parameter Lohkokoko:
Name: BFS_Initialize_Parameter Nimi:
@@ -1,8 +1,8 @@
1 french application/x-vnd.Haiku-BFSAddOn 1074880496
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (Surtout des petits fichiers)
1 french x-vnd.Haiku-BFSAddOn 1074880496
Enable query support BFS_Initialize_Parameter Activer le support des requêtes
2048 (Recommended) BFS_Initialize_Parameter 2048 (Recommandé)
8192 (Mostly large files) BFS_Initialize_Parameter 8192 (Surtout des gros fichiers)
Blocksize: BFS_Initialize_Parameter Taille de bloc :
Disabling query support may speed up certain file system operations, but should only be used if one is absolutely certain that one will not need queries.\nAny volume that is intended for booting Haiku must have query support enabled. BFS_Initialize_Parameter Désactiver le support des requête peut accélérer certaines opérations du système de fichiers, mais vous devez être certains de ne jamais avoir besoin des requêtes.\nTout volume destiné à amorcer Haiku doit avoir le support des requête activé.
Enable query support BFS_Initialize_Parameter Activer le support des requêtes
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (Surtout des petits fichiers)
Blocksize: BFS_Initialize_Parameter Taille de bloc :
Name: BFS_Initialize_Parameter Nom :
@@ -0,0 +1,8 @@
1 hindi x-vnd.Haiku-BFSAddOn 1074880496
Enable query support BFS_Initialize_Parameter क्वेरी समर्थन सक्षम करें
2048 (Recommended) BFS_Initialize_Parameter 2048(सिफारिश)
8192 (Mostly large files) BFS_Initialize_Parameter 8192 (ज्यादातर बड़ी फ़ाइलें)
Disabling query support may speed up certain file system operations, but should only be used if one is absolutely certain that one will not need queries.\nAny volume that is intended for booting Haiku must have query support enabled. BFS_Initialize_Parameter क्वेरी समर्थन को अक्षम करना कुछ फाइल सिस्टम संचालन की गति को बढ़ा सकता है, लेकिन इसका इस्तेमाल केवल तब ही करना चाहिए अगर बिल्कुल निश्चित है कि क्वेरी (प्रश्नों) की जरूरत नहीं होगी.\n किसी भी वॉल्यूम जो हाइकू को बूट करने के लिए अभीष्ट है उसमे क्वेरी समर्थन सक्षम होना चाहिए.
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (ज्यादातर छोटी फ़ाइलें)
Blocksize: BFS_Initialize_Parameter ब्लॉकसाइज:
Name: BFS_Initialize_Parameter नाम :
@@ -0,0 +1,3 @@
1 croatian application/x-vnd.Haiku-BFSAddOn 1111350773
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (uglavnom male datoteke
Name: BFS_Initialize_Parameter Ime:
@@ -0,0 +1,8 @@
1 hungarian x-vnd.Haiku-BFSAddOn 1074880496
Enable query support BFS_Initialize_Parameter Lekérdezéstámogatás engedélyezése
2048 (Recommended) BFS_Initialize_Parameter 2048 (ajánlott)
8192 (Mostly large files) BFS_Initialize_Parameter 8192 (nagyrészt nagy fájlok)
Disabling query support may speed up certain file system operations, but should only be used if one is absolutely certain that one will not need queries.\nAny volume that is intended for booting Haiku must have query support enabled. BFS_Initialize_Parameter A lekérdezések támogatásának letiltása felgyorsíthat bizonyos fájlműveleteket, de csak akkor ajánlott használni, ha biztos, hogy nem lesz szükség a lekérdezésekre.\nMinden Haiku rendszerindító lemeznek támogatnia kell a lekérdezéseket.
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (nagyrészt kis fájlok)
Blocksize: BFS_Initialize_Parameter Blokkméret:
Name: BFS_Initialize_Parameter Név:
@@ -1,8 +1,8 @@
1 japanese application/x-vnd.Haiku-BFSAddOn 1074880496
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (小さいファイル用)
1 japanese x-vnd.Haiku-BFSAddOn 1074880496
Enable query support BFS_Initialize_Parameter クエリを有効にする
2048 (Recommended) BFS_Initialize_Parameter 2048 (推奨)
8192 (Mostly large files) BFS_Initialize_Parameter 8192 (大きいファイル用)
8192 (Mostly large files) BFS_Initialize_Parameter 8192 (主に大きいファイル用)
Disabling query support may speed up certain file system operations, but should only be used if one is absolutely certain that one will not need queries.\nAny volume that is intended for booting Haiku must have query support enabled. BFS_Initialize_Parameter クエリを無効にすると、特定のファイルシステム操作は早くなるでしょう。しかし、完全にクエリを必要としないことを確信している場合のみ使うべきです。\nHaiku のブート対象のボリュームは、クエリを有効にする必要があります。
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (主に小さいファイル用)
Blocksize: BFS_Initialize_Parameter ブロックサイズ:
Disabling query support may speed up certain file system operations, but should only be used if one is absolutely certain that one will not need queries.\nAny volume that is intended for booting Haiku must have query support enabled. BFS_Initialize_Parameter クエリーを無効にすると、特定のファイルシステム操作は早くなるでしょう。しかし、完全にクエリーを必要としないことを確信している場合のみ使うべきです。\nHaikuをブート対象のボリュームは、クエリーを有効にする必要があります。
Enable query support BFS_Initialize_Parameter クエリーを有効にする
Name: BFS_Initialize_Parameter 名前:
Name: BFS_Initialize_Parameter ボリューム名:
@@ -0,0 +1,8 @@
1 lithuanian x-vnd.Haiku-BFSAddOn 1074880496
Enable query support BFS_Initialize_Parameter Leisti užklausas
2048 (Recommended) BFS_Initialize_Parameter 2048 (rekomenduojamas)
8192 (Mostly large files) BFS_Initialize_Parameter 8192 (daugiausia dideli failai)
Disabling query support may speed up certain file system operations, but should only be used if one is absolutely certain that one will not need queries.\nAny volume that is intended for booting Haiku must have query support enabled. BFS_Initialize_Parameter Uždraudus užklausas, gali paspartėti kai kurios failų sistemos operacijos, tačiau tai turėtų būti daroma tik esant visiškai tikriems, kad užklausų nereikės.\nJeigu į tomą ketinama diegti „Haiku“ ir iš jo šią sistemą leisti, užklausos turi būti leidžiamos.
1024 (Mostly small files) BFS_Initialize_Parameter 1024 (daugiausia maži failai)
Blocksize: BFS_Initialize_Parameter Blokinio dydis:
Name: BFS_Initialize_Parameter Pavadinimas:

Some files were not shown because too many files have changed in this diff Show More