source: BLFS/gen-makefile.sh@ 5be3651

2.3 2.3.x 2.4 ablfs ablfs-more legacy new_features trunk
Last change on this file since 5be3651 was aa50f77, checked in by George Boudreau <georgeb@…>, 18 years ago

Remove unecessary trace

  • Property mode set to 100755
File size: 3.8 KB
RevLine 
[6d0dbc3]1#!/bin/bash
[3c10176]2#
3# $Id$
[6d0dbc3]4#
5set -e
6
7
[3c10176]8
9# TEMPORARY VARIABLES.. development use only
[6d0dbc3]10declare MKFILE=Makefile
[3c10176]11declare PREV_PACKAGE=""
12declare BUILD_SCRIPTS=scripts
13declare TRACKING_DIR=/var/lib/jhalfs/BLFS
14
[6d0dbc3]15HEADER="# This file is automatically generated by jhalfs
16# YOU MAY NEED TO EDIT THIS FILE MANUALLY
17#
18# Generated on `date \"+%F %X %Z\"`"
19
[3c10176]20
21#----------------------------------#
22__wrt_target() { # Create target and initialize log file
23#----------------------------------#
24 local i=$1
25 local PREV=$2
26(
27cat << EOF
28
29$i: $PREV
30 @\$(call echo_message, Building)
31 @./progress_bar.sh \$@ &
32EOF
33) >> $MKFILE.tmp
34}
35
36
37
38#----------------------------------#
39__write_build_cmd() { #
40#----------------------------------#
41(
42cat << EOF
[57c7bfe]43 @source ../envars.conf && ${BUILD_SCRIPTS}/\$@ >logs/\$@ 2>&1
[3c10176]44EOF
45) >> $MKFILE.tmp
46}
47
48#----------------------------------#
49__wrt_touch() { #
50#----------------------------------#
51 local pkg_name=$1
[356f5bb]52 local pkg_ver=$2
[3c10176]53(
54cat << EOF
55 @touch \$@ && \\
[356f5bb]56 touch \$(TRACKING_DIR)/${pkg_name#*-?-}-${pkg_ver} && \\
[3c10176]57 sleep .25 && \\
58 echo -e "\n\n "\$(BOLD)Target \$(BLUE)\$@ \$(BOLD)OK && \\
59 echo --------------------------------------------------------------------------------\$(WHITE)
60EOF
61) >> $MKFILE.tmp
62}
63
64
65#----------------------------#
66__write_entry() { #
67#----------------------------#
68 local script_name=$1
[356f5bb]69 local pkg_ver=$2
70
[3c10176]71 echo -n "${tab_}${tab_} entry for <$script_name>"
72
73 #--------------------------------------------------------------------#
74 # >>>>>>>> START BUILDING A Makefile ENTRY <<<<<<<< #
75 #--------------------------------------------------------------------#
76 #
77 # Drop in the name of the target on a new line, and the previous target
78 # as a dependency. Also call the echo_message function.
79 __wrt_target "${script_name}" "$PREV_PACKAGE"
[dc67791]80 __write_build_cmd
[3c10176]81
82 # Include a touch of the target name so make can check
83 # if it's already been made.
[356f5bb]84 __wrt_touch "${script_name}" "${pkg_ver}"
[3c10176]85 #
86 #--------------------------------------------------------------------#
87 # >>>>>>>> END OF Makefile ENTRY <<<<<<<< #
88 #--------------------------------------------------------------------#
89 echo " .. OK"
90}
91
92#----------------------------#
93generate_Makefile () { #
94#----------------------------#
95
96
97 echo "${tab_}Creating Makefile... ${BOLD}START${OFF}"
98
99 # Start with a clean files
100 >$MKFILE
101 >$MKFILE.tmp
102
[6d0dbc3]103
[3c10176]104 for package_script in scripts/* ; do
105 this_script=`basename $package_script`
[356f5bb]106 script_ver=$(xmllint --noent ../blfs-xml/book/bookinfo.xml 2>/dev/null | \
107 grep -i " ${this_script#*-?-}-version " | \
108 cut -d "\"" -f2 )
109 if [ ! -e $TRACKING_DIR/${this_script#*-?-}-$script_ver ]; then
[3c10176]110 pkg_list="$pkg_list ${this_script}"
[356f5bb]111 __write_entry "${this_script}" "${script_ver}"
[3c10176]112 PREV_PACKAGE=${this_script}
113 fi
114 done
115
116
117 # Add a header, some variables and include the function file
118 # to the top of the real Makefile.
119(
120 cat << EOF
121$HEADER
122
[6d0dbc3]123PACKAGE= "`basename $PWD`"
[3c10176]124TRACKING_DIR= $TRACKING_DIR
125
126BOLD= "[0;1m"
127RED= "[1;31m"
128GREEN= "[0;32m"
129ORANGE= "[0;33m"
130BLUE= "[1;34m"
131WHITE= "[00m"
132
133define echo_message
134 @echo \$(BOLD)
135 @echo --------------------------------------------------------------------------------
136 @echo \$(BOLD)\$(1) target \$(BLUE)\$@\$(BOLD)
137 @echo \$(WHITE)
138endef
139
140
141define fin_message
142 @echo \$(BOLD)
143 @echo --------------------------------------------------------------------------------
144 @echo \$(BOLD) Build complete for the package \$(BLUE)\$(PACKAGE)\$(BOLD) and its dependencies
145 @echo \$(WHITE)
146endef
147
148all : $pkg_list
149 @\$(call fin_message )
150EOF
151) > $MKFILE
152
153 cat $MKFILE.tmp >> $MKFILE
154 echo "${tab_}Creating Makefile... ${BOLD}DONE${OFF}"
155
156 rm $MKFILE.tmp
157
158}
[6d0dbc3]159
160generate_Makefile
161
162cp ../progress_bar.sh .
163
164mkdir -p logs
Note: See TracBrowser for help on using the repository browser.