Parcourir la source

adding high level build script

clementinecomputing il y a 6 ans
Parent
commit
2285477a0b
2 fichiers modifiés avec 72 ajouts et 0 suppressions
  1. 64 0
      busunit/build_all.sh
  2. 8 0
      busunit/client_modules.list

+ 64 - 0
busunit/build_all.sh

@@ -0,0 +1,64 @@
+#!/bin/bash
+# Copyright (c) 2019 Clementine Computing LLC.
+# 
+# This file is part of PopuFare.
+# 
+# PopuFare is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# PopuFare 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 Affero General Public License for more details.
+# 
+# You should have received a copy of the GNU Affero General Public License
+# along with PopuFare.  If not, see <https://www.gnu.org/licenses/>.
+#
+
+modules=`cat client_modules.list | xargs echo`
+
+function copy_to_bin_dir
+{
+	module_dir_pattern=`for i in $modules; do echo "^\./$i"; done | xargs echo | tr ' ' '|'`
+	built_binaries=`find . -name buildit.sh | xargs egrep -o -- "-o[[:space:]]+[^[:space:]]+"  | sed 's/buildit.sh:-o //' | egrep $module_dir_pattern`
+
+	(rm ./bin/$target/*; mkdir -p ./bin/$target/;) 2> /dev/null
+	
+
+	for i in $built_binaries; do
+		cp $i ./bin/$target/	
+	done
+}
+
+
+target=$1
+failed_mods=""
+
+. configure_target.sh.include
+
+if [ -z "$target_ok" ]; then
+	echo "No rules to build for target \"$target\""
+	exit 2
+fi
+
+for mod in $modules; do
+	if (cd $mod; ./buildit.sh); then
+		echo "Module \"$mod\" built successfully for $target"
+	else
+		echo "Module \"$mod\" failed to build for $target"
+		failed_mods="$failed_mods $mod"
+	fi
+done
+
+if [ -n "$failed_mods" ]; then
+	echo
+	echo "The following modules failed to build: $failed_mods"
+	exit 1
+else
+	echo
+	echo "All modules built!  Attempting to copy to ./bin/$target"
+	copy_to_bin_dir
+	exit 0
+fi

+ 8 - 0
busunit/client_modules.list

@@ -0,0 +1,8 @@
+commhub
+billdb
+passdb
+avls
+PIU
+DIU
+paddlemgr
+client_supervisor