summaryrefslogtreecommitdiff
path: root/setup/setupdir.sh
diff options
context:
space:
mode:
Diffstat (limited to 'setup/setupdir.sh')
-rw-r--r--setup/setupdir.sh316
1 files changed, 316 insertions, 0 deletions
diff --git a/setup/setupdir.sh b/setup/setupdir.sh
new file mode 100644
index 0000000..9bb9f37
--- /dev/null
+++ b/setup/setupdir.sh
@@ -0,0 +1,316 @@
+#!/bin/sh -e
+
+if test "$CONFIGURE " != "YES "
+then
+ echo
+ echo Error: Wrong usage
+ echo
+ echo You must run `dirname $0`/configure instead of $0
+ exit 1
+fi
+
+[ -z "$CC" ] && CC=cc
+
+echo srcdir=$SRCDIR
+
+BLDDIR=`pwd`
+OS=`uname -s`
+
+if test "$TARGETOS " != " "
+then
+ OS=$TARGETOS
+fi
+
+# Use the same source directories for SCO UnixWare and SCO OSR
+if test "$OS " = "UnixWare "
+then
+ OS=SCO_SV
+fi
+
+# Use the same source directories for Haiku and BeOS
+if test "$OS " = "Haiku "
+then
+ OS=BeOS
+fi
+
+# Use Linux24 as the OS name for Linux 2.4.x
+if test "$OS " = "Linux "
+then
+ if test "`uname -r|sed 's/2.//'|sed 's/\..*//'` " = "4 "
+ then
+ OS=Linux24
+ fi
+fi
+
+# pkg-config seems to crash in some systems so disable core dumps
+ulimit -c 0 >/dev/null 2>&1
+
+if pkg-config gtk+-2.0 --cflags > /dev/null 2>&1
+then
+ HAVE_GTK=y
+ GTK2=1
+ export HAVE_GTK GTK2
+else
+ if gtk-config --cflags > /dev/null 2>&1
+ then
+ HAVE_GTK=y
+ GTK1=1
+ export HAVE_GTK GTK1
+ fi
+fi
+
+if test "`ls .` " != " " && test "`ls .` " != ".makefile "
+then
+ echo Error: Current directory must be empty
+ exit 1
+fi
+
+if test -f $SRCDIR/setup/setupdir.sh
+then
+ echo Source directory is $SRCDIR
+ echo Build directory is $BLDDIR
+else
+ echo Error: Invalid source directory $SRCDIR
+ exit 2
+fi
+
+# Copy the ".devices" files for all drivers to devices.list
+cat `find $SRCDIR/kernel/drv -name .devices`|grep -v '^#' > devices.list
+
+if test -d $SRCDIR/kernel/nonfree/drv
+then
+ cat `find $SRCDIR/kernel/nonfree/drv -name .devices`|grep -v '^#' >> devices.list
+fi
+
+echo BLDDIR=$BLDDIR > .directories
+echo SRCDIR=$SRCDIR >> .directories
+echo OSSLIBDIR=$OSSLIBDIR >> .directories
+
+$CC $LDFLAGS -o dirsetup $SRCDIR/setup/dirsetup.c
+
+# Make sure the latest soundcard.h version is installed in the system
+#rm /usr/include/sys/soundcard.h
+#cp $SRCDIR/include/soundcard.h /usr/include/sys/soundcard.h
+
+if ./dirsetup "$SRCDIR" "$BLDDIR" $* $COPY_OPTIONS
+then
+ echo Build tree created OK
+else
+ echo Cannot create the build tree
+ rm -f dirsetup
+ exit 3
+fi
+
+rm -f dirsetup
+
+if test "$CLOSED_SOURCE " != "YES "
+then
+ rm -rf kernel/nonfree 4front-private
+fi
+
+if test "$ONLY_DRVS " != " "
+then
+ cd kernel/drv
+ for drv in *
+ do
+ if echo $ONLY_DRVS | grep ",$drv" >/dev/null
+ then
+ :
+ else
+ touch "$drv"/.nomake
+ fi
+ done
+ cd ../..
+
+ if test "$CLOSED_SOURCE " = "YES "
+ then
+ cd kernel/nonfree/drv
+ for drv in *
+ do
+ if echo $ONLY_DRVS | grep ",$drv" >/dev/null
+ then
+ :
+ else
+ touch "$drv"/.nomake
+ fi
+ done
+ cd ../../../
+ fi
+fi
+
+DTARGETOS=
+if ! test -z $TARGETOS
+then
+ DTARGETOS="-D$TARGETOS"
+fi
+
+$CC $LDFLAGS -D`uname -s` $DTARGETOS -o srcconf $SRCDIR/setup/srcconf.c
+
+if ./srcconf $*
+then
+ echo Source configuration OK
+else
+ echo Source configuration failed
+fi
+
+if test "$CLOSED_SOURCE " != "YES " && test -d $SRCDIR/.hg
+then
+ HGID=`(cd $SRCDIR && hg tip|grep changeset) 2>/dev/null`
+
+ if test "$HGID " != " "
+ then
+ echo '#define' OSS_HG_INFO \"$HGID, \" \\ >> kernel/framework/include/local_config.h
+
+ HGID=`(cd $SRCDIR && hg tip|grep tag) 2>/dev/null`
+ echo ' ' \"$HGID, \" \\ >> kernel/framework/include/local_config.h
+
+ HGID=`(cd $SRCDIR && hg tip|grep date) 2>/dev/null`
+ echo ' ' \"$HGID, \" \\ >> kernel/framework/include/local_config.h
+
+ HGID=`(cd $SRCDIR && hg tip|grep summary) 2>/dev/null`
+ echo ' ' \"$HGID\" >> kernel/framework/include/local_config.h
+ fi
+
+fi
+
+if test ! "$OSS_CONFIG_OPTIONS " = " " && test ! "$OSS_CONFIG_OPTIONS " = "--include-closed-source "
+then
+ echo '#define OSS_CONFIG_OPTIONS '\"$OSS_CONFIG_OPTIONS\" >> kernel/framework/include/local_config.h
+fi
+
+if test ! -d target
+then
+ mkdir target
+fi
+
+mkdir target/bin
+mkdir target/lib
+mkdir target/sbin
+mkdir target/modules
+mkdir target/objects
+mkdir target/tmpobjects
+
+touch .depend
+
+if date -u +%Y%m%d%H%M > build.id.new 2>/dev/null
+then
+ rm -f build.id
+ mv build.id.new build.id
+ echo "#define OSS_COMPILE_DATE \""`cat build.id`"\"" >> kernel/framework/include/timestamp.h
+ echo "#define osdev_create osdev_create_`cat build.id`" >> kernel/framework/include/timestamp.h
+ echo
+ echo Build ID will become `cat build.id`
+else
+ echo Failed to create the build timestamp
+ exit 254
+fi
+
+if test "$CLOSED_SOURCE " = "YES "
+then
+ echo "#define LICENSED_VERSION" >> kernel/framework/include/local_config.h
+fi
+
+if test -f $SRCDIR/buildid.dat
+then
+ echo '#define 'OSS_BUILD_ID \"`cat $SRCDIR/buildid.dat`\" > kernel/framework/include/buildid.h
+else
+ echo $SRCDIR/buildid.dat is missing
+ exit 10
+fi
+
+if test ! -d kernel/nonfree || test -f $SRCDIR/kernel/nonfree/.nomake
+then
+ echo '#define __OPENOSS__' >> kernel/framework/include/buildid.h
+ if test -f $SRCDIR/.license
+ then
+ echo '#define OSS_LICENSE "'`cat $SRCDIR/.license`'"' >> kernel/framework/include/buildid.h
+ else
+ echo '#define OSS_LICENSE "OSS_HG"' >> kernel/framework/include/buildid.h
+ fi
+fi
+
+if test "$uOSS " = "1 "
+then
+ echo '#define uOSS' >> kernel/framework/include/buildid.h
+fi
+
+if test "$USE_REGPARM " = "1 "
+then
+ echo "1" > ./regparm
+fi
+
+if test "$NO_REGPARM " = "1 "
+then
+ echo "0" > ./regparm
+fi
+
+# Setup the link to the right os.h file for this operating system.
+(cd kernel/framework/include;ln -s ../../../kernel/OS/$OS/os_*.h os.h)
+
+$CC $LDFLAGS -o ossvers -I./kernel/framework/include setup/ossvers.c
+./ossvers > .version
+rm ./ossvers
+
+ln -s $SRCDIR origdir
+
+if test -f setup/$OS/build_`uname -m`.sh
+then
+ ln -s setup/$OS/build_`uname -m`.sh build.sh
+else
+ if test -f setup/$OS/build.sh
+ then
+ ln -s setup/$OS/build.sh build.sh
+ fi
+fi
+
+if test -f setup/$OS/make.local
+then
+ if test -f Makefile.php
+ then
+ echo >> Makefile.php
+ echo include setup/$OS/make.local >> Makefile.php
+ else
+ echo >> Makefile
+ echo include setup/$OS/make.local >> Makefile
+ fi
+fi
+PHPMAKE=phpmake
+
+if test ! -d phpmake && test -d ../phpmake
+then
+ PHPMAKE=../phpmake
+fi
+
+if test -f Makefile.php && test -d $PHPMAKE
+then
+ echo Running phpmake for all subdirectories - please wait
+
+ if test "$PHPMAKE_LIBPATH " = " "
+ then
+ PHPMAKE_LIBPATH="`pwd`/$PHPMAKE/"
+
+ export PHPMAKE_LIBPATH
+ echo PHPMAKE_LIBPATH not set - assuming $PHPMAKE_LIBPATH
+ fi
+
+ if test "$PHPMAKE_PROJECT " = " "
+ then
+ echo PHPMAKE_PROJECT not set - cannot continue
+ exit 1
+ fi
+
+ phpmake
+
+ (cd targetos && phpmake)
+
+ make kernel/framework/include/ossddk/oss_limits.h # Generate this file from PHh
+else
+ ln -s oss_limits.PHh kernel/framework/include/ossddk/oss_limits.h
+fi
+
+make dep
+
+echo Directory preparation complete.
+echo Build ID will be `cat $SRCDIR/buildid.dat`
+
+exit 0