improve of cmpl.
[bush.git] / build / misc / shlib / build.shlib
blob6e18dc6ea5e62850ffb342e5c320108641c1499f
2 # this file is sourced from Makefile.in in orignal version code.
3 # in Makefile.in, there are three part:
4 # @ info variable definations, it is defined in info.shlib.
5 # @ target for building, it is defined in this file.
6 # @ src file dependence.
9 . info.shlib
11 build_subcmd="
12 all
13 install
14 uninstall
15 installhdr
16 uninstallhdr
17 clean
18 distclean
19 test
20 pkg
22 doc
23 umdoc
24 apidoc
25 webdoc
27 strip
28 tag
29 lint
30 asan
31 gcov
34 made ()
36         # .made: $(Program) bushbug $(SDIR)/man2html$(EXEEXT)
37         echo "$(Program) last made for a $(Machine) running $(OS)" >.made
40 g_build_banner_info ()
42         # .build:       $(SOURCES) config.h Makefile src/version.h $(VERSPROG)
43         echo
44         echo "    ***********************************************************"
45         echo "    *                                                         *"
46         echo "    * `$(BUILD_DIR)/$(VERSPROG) -l`"
47         echo "    *                                                         *"
48         echo "    ***********************************************************"
49         echo
52 ###################################################################
54 gen_version_h ()
56         # src/version.h:  $(SOURCES) config.h Makefile src/patchlevel.h
57         $(SHELL) $(SUPPORT_SRC)mkversion.sh -b -S ${topdir} -s $(RELSTATUS) -d $(Version) -o src/newversion.h \
58                 && mv src/newversion.h src/version.h
61 bushbug ()
63         # bushbug: $(SDIR)/bushbug.sh $(VERSPROG)
64         PatchLevel="`${VERSPROG} -p`"
65         sed -e "s%!PATCHLEVEL%${PatchLevel}%" \
66                          support/bushbug.sh > bushbug
67         chmod a+rx bushbug
70 g_bushversion ()
72         gen_version_h
74         # buildversion.o: src/bushintl.h $(BUSHINCDIR)/gettext.h
75         # buildversion.o: src/version.h src/patchlevel.h src/conftypes.h
77         # buildversion.o: $(srcdir)/src/version.c
78         ${CC_FOR_BUILD} ${CCFLAGS_FOR_BUILD} -DBUILDTOOL -c -o buildversion.o ${srcdir}/src/version.c
80         # bushversion$(EXEEXT): buildversion.o $(SUPPORT_SRC)bushversion.c
81         echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
82         ${CC_FOR_BUILD} ${CCFLAGS_FOR_BUILD} ${LDFLAGS_FOR_BUILD} -o bushversion${EXEEXT} ${SUPPORT_SRC}bushversion.c buildversion.o ${LIBS_FOR_BUILD}
84         bushbug
87 g_gen_y_tab_c ()
89         GRAM_H = parser-built
91         # .obj/lxrgmr/y.tab.o: src/lxrgmr/y.tab.h src/lxrgmr/y.tab.c ${GRAM_H} src/lxrgmr/command.h ${BUSHINCDIR}/stdc.h src/input/input.h
93         # ${GRAM_H}:    src/lxrgmr/y.tab.h
94         if test -f src/lxrgmr/y.tab.h ; then
95                 cmp -s ${GRAM_H} src/lxrgmr/y.tab.h 2>/dev/null || cp -p src/lxrgmr/y.tab.h ${GRAM_H};
96         fi
98         # src/lxrgmr/y.tab.c: src/lxrgmr/parse.y
99 #       if test -f src/lxrgmr/y.tab.h; then mv -f src/lxrgmr/y.tab.h old-src/lxrgmr/y.tab.h; fi
100         if [[ ! -f src/lxrgmr/y.tab.c || src/lxrgmr/parse.y -nt src/lxrgmr/y.tab.c ]]; then
101                 ${YACC} -d ${srcdir}/src/lxrgmr/parse.y -o src/lxrgmr/y.tab.c
102         touch parser-built
103 #       if cmp -s old-src/lxrgmr/y.tab.h src/lxrgmr/y.tab.h; then mv old-src/lxrgmr/y.tab.h src/lxrgmr/y.tab.h; else cp -p src/lxrgmr/y.tab.h ${GRAM_H}; fi
105         # src/lxrgmr/y.tab.h: src/lxrgmr/y.tab.c
106         true
110 # builtins_builtext_h
111 g_mkbuiltins ()
113         # ${DEFDIR}/builtext.h: $(BUILTIN_DEFS)
114 #       @(cd $(DEFDIR) && $(MAKE) $(MFLAGS) builtext.h ) || exit 1
116         #
117         # mkbultins & gen builtins.c
118         # this step is putted in builtins/cmpl.sh
119         #
120         if false; then
121                 gcc -c  -DHAVE_CONFIG_H -DSHELL  -I. -I..  -I.. -I../src -I../include -I../lib -I.    -g -O2 -Wno-parentheses -Wno-format-security  mkbuiltins.c
122                 gcc -rdynamic -g -O2 -Wno-parentheses -Wno-format-security -rdynamic -g -O2 -Wno-parentheses -Wno-format-security  -o mkbuiltins mkbuiltins.o -ldl 
123                 ./mkbuiltins -externfile builtext.h -structfile builtins.c \
124                         -noproduction -D .   ./alias.def ./bind.def ./break.def ./builtin.def ./caller.def ./cd.def ./colon.def ./command.def ./declare.def ./echo.def ./enable.def ./eval.def ./getopts.def ./exec.def ./exit.def ./fc.def ./fg_bg.def ./hash.def ./help.def ./history.def ./jobs.def ./kill.def ./let.def ./read.def ./return.def ./set.def ./setattr.def ./shift.def ./source.def ./suspend.def ./test.def ./times.def ./trap.def ./type.def ./ulimit.def ./umask.def ./wait.def ./reserved.def ./pushd.def ./shopt.def ./printf.def ./complete.def ./mapfile.def
125         fi
128 # TBD: build param like gen_version_h
129 g_mksignames ()
131         # mksignames() in cmpl.sh
133         #
134         # mksignames & gen signames.h
135         #
137         MACRO_DEF=" -DPROGRAM=\"bush\" -DCONF_HOSTTYPE=\"i686\" -DCONF_OSTYPE=\"linux-gnu\" -DCONF_MACHTYPE=\"i686-pc-linux-gnu\" -DCONF_VENDOR=\"pc\" -DLOCALEDIR=\"/usr/local/share/locale\" -DPACKAGE=\"bush\" -DSHELL -DHAVE_CONFIG_H "
138         INC_PATHS=" -I.  -I. -I./include -I./src -I./lib "
139         MISC_CFLAGS="-g -O2 -Wno-parentheses -Wno-format-security"
141         update_param
143         rm -f mksignames.o
144         echo gcc ${CFLAGS} -DBUILDTOOL -c ./support/mksignames.c
145         gcc ${CFLAGS} -DBUILDTOOL -c ./support/mksignames.c
147         rm -f buildsignames.o
148         echo gcc ${CFLAGS} -DBUILDTOOL -c ./support/mksignames.c -o buildsignames.o
149         gcc ${CFLAGS} -DBUILDTOOL -c ./support/signames.c -o buildsignames.o
151         rm -f mksignames
152         echo gcc ${CFLAGS}  -rdynamic  -o mksignames mksignames.o buildsignames.o 
153         gcc ${CFLAGS}  -rdynamic  -o mksignames mksignames.o buildsignames.o 
156         rm -f src/lsignames.h
157         ./mksignames src/lsignames.h
158         if cmp -s src/lsignames.h src/signames.h ; then
159                 :;
160         else
161                 rm -f src/signames.h ;
162                 cp src/lsignames.h src/signames.h ;
163         fi
166 # TBD: build param like gen_version_h
167 g_mksyntax ()
169         #
170         # mksyntax
171         #
172         rm -f mksyntax
173         echo gcc ${CFLAGS} -DBUILDTOOL -rdynamic -o mksyntax mksyntax.c
174         gcc ${CFLAGS} -DBUILDTOOL -rdynamic -o mksyntax mksyntax.c
176         ./mksyntax$(EXEEXT) -o src/syntax.c
179 g_gen_pathnames_h ()
181         # src/pathnames.h:              Makefile $(srcdir)/src/pathnames.h.in
182         # gen_pathnames_h() in cmpl.sh
184         prefix="/usr/local"
185         datarootdir="${prefix}/share"
186         datadir="${datarootdir}"
187         DEBUGGER_START_FILE="${datadir}/bushdb/bushdb-main.inc"
188         #
189         # src/pathnames.h
190         #
191         sed -e 's|@DEBUGGER_START_FILE\@|${DEBUGGER_START_FILE}|g' src/pathnames.h.in > pathnames.tmp
192         if test -f src/pathnames.h; then
193                 cmp -s pathnames.tmp src/pathnames.h || mv pathnames.tmp src/pathnames.h;
194         else
195                 mv pathnames.tmp src/pathnames.h;
196         fi
197         rm pathnames.tmp
200 # TBD: build param like gen_version_h
201 g_gen_pipesize_h ()
203         #
204         # build psize.aux for pipesize.h
205         #
207         # INC_PATHS="-I. -I..  -I.. -I../src -I../include -I../lib -I."
208         INC_PATHS="-I. -I../ -I../src -I../include -I../lib -I../builtins"
209         DST_LIST="builtins"
211         update_param
213         cd builtins
214         rm psize.aux pipesize.h -f
215         echo gcc  ${CFLAGS}  -o psize.aux ./psize.c
216         gcc  ${CFLAGS}  -o psize.aux ./psize.c
217         echo get pipe size ...
218         /bin/sh ./psize.sh > pipesize.h
219         cd -
222 g_config_h ()
224         # config.h:     stamp-h 
225         # stamp-h:      config.status $(srcdir)/config.h.in $(srcdir)/config-top.h $(srcdir)/config-bot.h
226         CONFIG_FILES= CONFIG_HEADERS=config.h ${SHELL} ./config.status
229 ###################################################################