Explorar o código

BUILD script Beta version. For now only compiles some libs. It's independent from path and without mk.

rafael %!s(int64=9) %!d(string=hai) anos
pai
achega
7d263149f1
Modificáronse 2 ficheiros con 771 adicións e 0 borrados
  1. 175 0
      BUILD
  2. 596 0
      BUILD.conf

+ 175 - 0
BUILD

@@ -0,0 +1,175 @@
+#!/bin/bash
+
+#BUILD script
+#
+#Copyright (C) 2015  Rafael
+#
+#This program is free software; you can redistribute it and/or modify
+#it under the terms of the GNU General Public License as published by
+#the Free Software Foundation; either version 2 of the License, or
+#(at your option) any later version.
+#
+#This program is distributed in the hope that it will be useful,
+#but WITHOUT ANY WARRANTY; without even the implied warranty of
+#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#GNU General Public License for more details.
+#
+#You should have received a copy of the GNU General Public License along
+#with this program; if not, write to the Free Software Foundation, Inc.,
+#51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+#
+
+#Search for config:
+_BUILD_DIR=`dirname $0`
+. ${_BUILD_DIR}/BUILD.conf
+
+
+build_go_utils()
+{
+	cd "${UTIL_DIR}"
+	for i in `ls *.go`
+	do
+		go build $i
+		if [ $? -ne 0 ]
+		then
+			printf "\nERROR compiling $i \n"
+		fi
+	done
+	cd - > /dev/null
+}
+
+check_utils()
+{
+	if [ -f "${UTIL_DIR}"/mksys ]
+	then
+		echo 0
+	else
+		echo 1
+	fi
+}
+
+#ARGS:
+#$1 -> Lib name
+build_a_lib()
+{
+	cd "${SRC_DIR}/$1"
+	CFLAGS_EXTRA=
+	$1
+	for j in $BUILD_IN
+	do
+		echo "$CC $CFLAGS $CFLAGS_EXTRA -c $j"
+		$CC $CFLAGS $CFLAGS_EXTRA -c $j
+		if [ $? -ne 0 ]
+		then
+			printf "\n\n ERROR COMPILING $1\n"
+			exit 1
+		fi
+	done
+	echo "$AR rv \"$BUILD_OUT\" *.o"
+	$AR rv "$BUILD_OUT" *.o
+	if [ $? -ne 0 ]
+	then
+		printf "\n\n ERROR CREATING LIBRARY $1\n"
+	fi
+	cd - > /dev/null
+}
+
+#ARGS:
+#$1 -> Lib name
+clean_a_lib()
+{
+	cd "${SRC_DIR}/$1"
+	$1
+	printf "Cleaning $1 "
+	$CLEAN_COM
+	if [ $? -eq 0 ]
+	then
+		printf "OK\n"
+	else
+		printf "ERROR\n"
+	fi
+	cd - > /dev/null
+}
+
+#ARGS:
+#$1 -> ACTION:
+#      1) Build
+#      2) Clean
+build_libs()
+{
+	if [ $1 -eq 1 ]
+	then
+		SALIDA=`check_utils`
+		if [ $SALIDA -eq 1 ]
+		then
+			build_go_utils
+		fi
+	fi
+	
+	for i in $BUILD_LIBS
+	do
+		if [ $1 -eq 1 ]
+		then
+			build_a_lib $i
+		else
+			clean_a_lib $i
+		fi
+	done
+	
+	if [ $1 -eq 1 ]
+	then
+		echo "ALL LIBS COMPILED OK"
+	fi
+}
+
+show_help()
+{
+	printf "\n\nBUILD script for Harvey\n\n"
+	printf "OPTIONS:\n"
+	printf "  all        \tBuild all components\n"
+	printf "  cleanll     \tClean all components\n"
+	printf "  libs       \tBuild the libraries\n"
+	printf "  libs <libname>\tBuild the library <libname>\n"
+	printf "  cleanlibs\tClean the libraries\n"
+	printf "  utils     \tBuild go utils\n"
+	printf "\n"
+
+}
+
+### MAIN SCRIPT ####
+if [ -z "$1" ]
+then
+	show_help
+	exit 1
+else
+	case "$1" in
+		"all")
+				build_libs 1
+				printf "\n\nALL COMPONENTS COMPILED\n\n"
+				;;
+		"cleanall")
+				build_libs 2
+				printf "\n\nALL COMPONENTS CLEANED\n\n"
+				;;
+		"libs")
+				if [ -z "$2" ]
+				then
+					build_libs 1
+				else
+					build_a_lib "$2"
+				fi
+			;;
+		"cleanlibs")
+				build_libs 2
+			;;
+		"utils")
+				build_go_utils
+			;;
+		*)
+			echo "Invalid option <$1>"
+			;;
+	esac
+fi
+
+

+ 596 - 0
BUILD.conf

@@ -0,0 +1,596 @@
+#!/bin/bash
+#### INSTAL PARAMS ####
+
+ARCH=amd64
+
+### DIRS ###
+BASEDIR=/
+INC_DIR=${BASEDIR}/sys/include
+INC_ARCH=${BASEDIR}/${ARCH}/include
+LIB_DIR=${BASEDIR}/${ARCH}/lib
+SRC_DIR=${BASEDIR}/sys/src
+UTIL_DIR=${_BUILD_DIR}/util
+
+### COMPILER ###
+CC=gcc
+CFLAGS="-O0 -g -static -fplan9-extensions -ffreestanding -fno-builtin -Wall -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -Wuninitialized -Wmaybe-uninitialized -I${INC_ARCH} -I${INC_DIR}"
+LDFLAGS=-L$LIB_DIR
+AR=ar
+RANLIB=ranlib
+
+### Libraries ###
+BUILD_LIBS="lib9p libString libauth libauthsrv libavl libbin libbio libcomplete libcontrol libdisk libdraw libflate libframe libgeometry libhtml libhttpd\
+			liblex libmemdraw libmemlayer libndb libplumb libregexp libstdio libsunrpc libthread libventi"
+
+
+lib9p()
+{
+	BUILD_IN="	auth.c\
+				dirread.c\
+				fid.c\
+				file.c\
+				intmap.c\
+				listen.c\
+				mem.c\
+				req.c\
+				parse.c\
+				post.c\
+				rfork.c\
+				srv.c\
+				thread.c\
+				uid.c\
+				util.c\
+	"
+	BUILD_OUT="${LIB_DIR}/lib9p.a"
+	CLEAN_COM="rm -f *.o"
+}
+
+libString()
+{
+	BUILD_IN="	s_alloc.c\
+				s_append.c\
+				s_array.c\
+				s_copy.c\
+				s_getline.c\
+				s_grow.c\
+				s_memappend.c\
+				s_nappend.c\
+				s_parse.c\
+				s_putc.c\
+				s_rdinstack.c\
+				s_read.c\
+				s_read_line.c\
+				s_reset.c\
+				s_terminate.c\
+				s_tolower.c\
+				s_unique.c\
+				"
+	BUILD_OUT="${LIB_DIR}/libString.a"
+	CLEAN_COM="rm -f *.o"
+}
+
+libauth()
+{
+	BUILD_IN="	amount.c\
+				amount_getkey.c\
+				attr.c\
+				auth_attr.c\
+				auth_challenge.c\
+				auth_chuid.c\
+				auth_getkey.c\
+				auth_getuserpasswd.c\
+				auth_proxy.c\
+				auth_respond.c\
+				auth_rpc.c\
+				auth_userpasswd.c\
+				auth_wep.c\
+				login.c\
+				newns.c\
+				noworld.c\
+				"
+	BUILD_OUT="${LIB_DIR}/libauth.a"
+	CLEAN_COM="rm -f *.o"
+}
+
+libauthsrv()
+{
+	BUILD_IN="	_asgetticket.c\
+				_asrdresp.c\
+				authdial.c\
+				convA2M.c\
+				convM2A.c\
+				convM2PR.c\
+				convM2T.c\
+				convM2TR.c\
+				convPR2M.c\
+				convT2M.c\
+				convTR2M.c\
+				nvcsum.c\
+				opasstokey.c\
+				passtokey.c\
+				readnvram.c\
+				"
+	BUILD_OUT="${LIB_DIR}/libauthsrv.a"
+	CLEAN_COM="rm -f *.o"		
+}
+
+libavl()
+{
+	BUILD_IN="avl.c"
+	BUILD_OUT="${LIB_DIR}/libavl.a"
+	CLEAN_COM="rm -f *.o"
+}
+
+libbin()
+{
+	BUILD_IN="bin.c"
+	BUILD_OUT="${LIB_DIR}/libbin.a"
+	CLEAN_COM="rm -f *.o"
+}
+
+libbio()
+{
+	BUILD_IN="	bbuffered.c\
+				bfildes.c\
+				bflush.c\
+				bgetrune.c\
+				bgetc.c\
+				bgetd.c\
+				binit.c\
+				boffset.c\
+				bprint.c\
+				bputrune.c\
+				bputc.c\
+				brdline.c\
+				brdstr.c\
+				bread.c\
+				bseek.c\
+				bwrite.c\
+				bvprint.c\
+				"
+	BUILD_OUT="${LIB_DIR}/libbio.a"
+	CLEAN_COM="rm -f *.o"
+}
+
+libcomplete()
+{
+	BUILD_IN="complete.c"
+	BUILD_OUT="${LIB_DIR}/libcomplete.a"
+	CLEAN_COM="rm -f *.o"
+}
+
+libcontrol()
+{
+	BUILD_IN="	box.c\
+				button.c\
+				cache.c\
+				control.c\
+				entry.c\
+				group.c\
+				keyboard.c\
+				label.c\
+				menu.c\
+				radiobutton.c\
+				scribble.c\
+				slider.c\
+				tabs.c\
+				text.c\
+				textbutton.c\
+				textbutton3.c\
+				"
+	BUILD_OUT="${LIB_DIR}/libcontrol.a"
+	CLEAN_COM="rm -f *.o"
+}
+
+libdisk()
+{
+	BUILD_IN="	disk.c\
+				proto.c\
+				scsi.c\
+				"
+	BUILD_OUT="${LIB_DIR}/libdisk.a"
+	CLEAN_COM="rm -f *.o"
+}
+
+libdraw()
+{
+	BUILD_IN="	alloc.c\
+				allocimagemix.c\
+				arith.c\
+				bezier.c\
+				border.c\
+				buildfont.c\
+				bytesperline.c\
+				chan.c\
+				cloadimage.c\
+				computil.c\
+				creadimage.c\
+				debug.c\
+				defont.c\
+				draw.c\
+				drawrepl.c\
+				egetrect.c\
+				ellipse.c\
+				emenuhit.c\
+				event.c\
+				fmt.c\
+				font.c\
+				freesubfont.c\
+				getdefont.c\
+				getrect.c\
+				getsubfont.c\
+				icossin.c\
+				icossin2.c\
+				init.c\
+				keyboard.c\
+				line.c\
+				menuhit.c\
+				mkfont.c\
+				mouse.c\
+				newwindow.c\
+				openfont.c\
+				poly.c\
+				loadimage.c\
+				readcolmap.c\
+				readimage.c\
+				readsubfont.c\
+				rectclip.c\
+				replclipr.c\
+				rgb.c\
+				scroll.c\
+				string.c\
+				stringbg.c\
+				stringsubfont.c\
+				stringwidth.c\
+				subfont.c\
+				subfontcache.c\
+				subfontname.c\
+				unloadimage.c\
+				window.c\
+				writecolmap.c\
+				writeimage.c\
+				writesubfont.c\
+				"
+	BUILD_OUT="${LIB_DIR}/libdraw.a"
+	CLEAN_COM="rm -f *.o"
+}
+libflate()
+{
+   
+	BUILD_IN="	deflate.c\
+				deflatezlib.c\
+				deflateblock.c\
+				deflatezlibblock.c\
+				inflate.c\
+				inflatezlib.c\
+				inflateblock.c\
+				inflatezlibblock.c\
+				flateerr.c\
+				crc.c\
+				adler.c\
+			"
+	BUILD_OUT=${LIB_DIR}/libflate.a
+	CLEAN_COM="rm -f *.o"
+
+}
+
+libframe()
+{
+	BUILD_IN="	frbox.c\
+				frdraw.c\
+				frdelete.c\
+				frinit.c\
+				frinsert.c\
+				frptofchar.c\
+				frselect.c\
+				frstr.c\
+				frutil.c\
+				"
+	BUILD_OUT=${LIB_DIR}/libframe.a
+	CLEAN_COM="rm -f *.o"
+}
+
+libgeometry()
+{
+	BUILD_IN="	arith3.c\
+				matrix.c\
+				qball.c\
+				quaternion.c\
+				transform.c\
+				tstack.c\
+				"
+	BUILD_OUT=${LIB_DIR}/libgeometry.a
+	CLEAN_COM="rm -f *.o"
+}
+
+libhtml()
+{
+	BUILD_IN="		build.c\
+					lex.c\
+					strinttab.c\
+					utils.c\
+					"
+	BUILD_OUT=${LIB_DIR}/libhtml.a
+	CLEAN_COM="rm -f *.o"
+}
+
+libhttpd()
+{
+	BUILD_IN="	alloc.c\
+				checkcontent.c\
+				date.c\
+				fail.c\
+				gethead.c\
+				hio.c\
+				httpfmt.c\
+				httpunesc.c\
+				lower.c\
+				okheaders.c\
+				parse.c\
+				parsereq.c\
+				query.c\
+				redirected.c\
+				unallowed.c\
+				urlfmt.c\
+				urlunesc.c\
+				"
+	BUILD_OUT=${LIB_DIR}/libhttpd.a
+	CLEAN_COM="rm -f *.o"
+}
+
+liblex()
+{
+	BUILD_IN="	allprint.c\
+				main.c\
+				reject.c\
+				yyless.c\
+				yywrap.c\
+				"
+	BUILD_OUT=${LIB_DIR}/libl.a
+	CLEAN_COM="rm -f *.o"
+	
+	CFLAGS_EXTRA=-I${SRC_DIR}/cmd/lex
+}
+
+libmemdraw()
+{
+	BUILD_IN="	alloc.c\
+				arc.c\
+				cload.c\
+				cmap.c\
+				cread.c\
+				defont.c\
+				draw.c\
+				ellipse.c\
+				fillpoly.c\
+				hwdraw.c\
+				iprint.c\
+				line.c\
+				load.c\
+				openmemsubfont.c\
+				poly.c\
+				read.c\
+				string.c\
+				subfont.c\
+				unload.c\
+				write.c\
+				"
+	BUILD_OUT=${LIB_DIR}/libmemdraw.a
+	CLEAN_COM="rm -f *.o"
+}
+
+libmemlayer()
+{
+	BUILD_IN="	draw.c\
+				lalloc.c\
+				layerop.c\
+				ldelete.c\
+				lhide.c\
+				line.c\
+				load.c\
+				lorigin.c\
+				lsetrefresh.c\
+				ltofront.c\
+				ltorear.c\
+				unload.c\
+				"
+	BUILD_OUT=${LIB_DIR}/libmemlayer.a
+	CLEAN_COM="rm -f *.o"
+}
+
+libndb()
+{
+	BUILD_IN="	csgetval.c\
+				csipinfo.c\
+				dnsquery.c\
+				ipattr.c\
+				ndbaux.c\
+				ndbcache.c\
+				ndbcat.c\
+				ndbconcatenate.c\
+				ndbdiscard.c\
+				ndbfree.c\
+				ndbgetipaddr.c\
+				ndbgetval.c\
+				ndbhash.c\
+				ndbipinfo.c\
+				ndblookval.c\
+				ndbopen.c\
+				ndbparse.c\
+				ndbreorder.c\
+				ndbsubstitute.c\
+				"
+	BUILD_OUT=${LIB_DIR}/libndb.a
+	CLEAN_COM="rm -f *.o"
+	
+	CFLAGS_EXTRA=-I${SRC_DIR}/libndb
+}
+
+libplumb()
+{
+	BUILD_IN="	event.c\
+				mesg.c\
+				plumbsendtext.c\
+				"
+	BUILD_OUT=${LIB_DIR}/libplumb.a
+	CLEAN_COM="rm -f *.o"
+}
+
+libregexp()
+{
+	BUILD_IN="	regcomp.c\
+				regerror.c\
+				regexec.c\
+				regsub.c\
+				regaux.c\
+				rregexec.c\
+				rregsub.c\
+				"
+	BUILD_OUT=${LIB_DIR}/libregexp.a
+	CLEAN_COM="rm -f *.o"
+}
+
+libstdio()
+{
+	BUILD_IN="	_IO_getc.c\
+	_IO_putc.c\
+	clearerr.c\
+	dtoa.c\
+	fclose.c\
+	fdopen.c\
+	feof.c\
+	ferror.c\
+	fflush.c\
+	fgetc.c\
+	fgetpos.c\
+	fgets.c\
+	fileno.c\
+	fopen.c\
+	fprintf.c\
+	fputc.c\
+	fputs.c\
+	fread.c\
+	freopen.c\
+	fscanf.c\
+	fseek.c\
+	fseeko.c\
+	fsetpos.c\
+	ftell.c\
+	ftello.c\
+	fwrite.c\
+	getc.c\
+	gets.c\
+	printf.c\
+	putc.c\
+	puts.c\
+	rewind.c\
+	scanf.c\
+	sclose.c\
+	setbuf.c\
+	setvbuf.c\
+	snprintf.c\
+	sopenr.c\
+	sopenw.c\
+	sprintf.c\
+	sscanf.c\
+	tmpfile.c\
+	tmpnam.c\
+	ungetc.c\
+	vfprintf.c\
+	vfscanf.c\
+	vprintf.c\
+	vsnprintf.c\
+	vsprintf.c\
+	"
+	BUILD_OUT=${LIB_DIR}/libstdio.a
+	CLEAN_COM="rm -f *.o"
+}
+
+libsunrpc()
+{
+	BUILD_IN="	mount3.c\
+	nfs3.c\
+	portmap.c\
+	authunix.c\
+	client.c\
+	emalloc.c\
+	error.c\
+	fd.c\
+	fmt.c\
+	net.c\
+	prog.c\
+	rpc.c\
+	server.c\
+	suncall.c\
+	udp.c\
+	"
+	BUILD_OUT=${LIB_DIR}/libsunrpc.a
+	CLEAN_COM="rm -f *.o"
+}
+
+libthread()
+{
+	BUILD_IN="	amd64.c\
+	channel.c\
+	chanprint.c\
+	create.c\
+	debug.c\
+	dial.c\
+	exec.c\
+	exit.c\
+	id.c\
+	iocall.c\
+	ioclose.c\
+	iodial.c\
+	ioopen.c\
+	ioproc.c\
+	ioread.c\
+	ioreadn.c\
+	iosleep.c\
+	iowrite.c\
+	kill.c\
+	lib.c\
+	main.c\
+	note.c\
+	ref.c\
+	rendez.c\
+	sched.c\
+	"
+	BUILD_OUT=${LIB_DIR}/libthread.a
+	CLEAN_COM="rm -f *.o"
+}
+
+libventi()
+{
+	BUILD_IN="	cache.c\
+	client.c\
+	conn.c\
+	dial.c\
+	debug.c\
+	dtype.c\
+	entry.c\
+	fcall.c\
+	fcallfmt.c\
+	file.c\
+	hangup.c\
+	log.c\
+	mem.c\
+	packet.c\
+	parsescore.c\
+	queue.c\
+	root.c\
+	rpc.c\
+	scorefmt.c\
+	send.c\
+	server.c\
+	srvhello.c\
+	strdup.c\
+	string.c\
+	time.c\
+	version.c\
+	zero.c\
+	zeroscore.c\
+	"
+	BUILD_OUT=${LIB_DIR}/libventi.a
+	CLEAN_COM="rm -f *.o"
+}