mirror of
				git://git.code.sf.net/p/cdesktopenv/code
				synced 2025-03-09 15:50:02 +00:00 
			
		
		
		
	Build system: make SHOPT_* editable again; allow indenting Mamfiles
The build system is adapted to make SHOPT_* compile-time options
editable without nmake. We can now easily change ksh's compile-time
options by editing src/cmd/ksh93/SHOPT.sh. The bin/package script
is adapted to turn these into compile flags. This resolves the most
important drawback of not using nmake.
Also, mamake now has support for indented Mam (Make Abstract
Machine) code. Only one type of block (make...done) is supported in
Mamfiles, so they are easy to indent automatically. A script to
(re)do this is included.
Since nmake is not going to be restored (it has too many problems
that no one is interested in fixing), this at least makes mamake
significantly easier to work with.
The Makefiles are deleted. They may still be handy for reference to
understand the Mamfiles, but they haven't actually matched the
Mamfiles for a while -- and you can still look in the git history.
Deleting them requires some adaptations to bin/package and mamake.c
because, even though they do not use those files, they still looked
for them to decide whether to build code in a directory.
Finally, this commit incorporates some #pragmas for clang to
suppress annoying warnings about the coding style used in this
historic code base. (gcc does not complain so much.)
src/cmd/ksh93/SHOPT.sh:
- Added.
bin/package, src/cmd/INIT/package.sh:
- cd into our own directory in case we were run from another dir.
- $makefiles: only look for Mamfiles.
- Add ksh compile-options via KSH_SHOPTFLAGS. Include SHOPT.sh.
- make_recurse(): Do not write a missing Makefile.
- finalize environment: Look for Mamfiles instead of Makefiles.
src/cmd/INIT/mamake.c:
- Tell clang to suppress annoying warnings about coding style.
- Update version string and self-documentation.
- input(): Add support for indented Mam code by skipping initial
  whitespace on each input line.
- files[]: Instead of looking for various of Makefiles to decide
  where to build, only look for Mamfiles.
src/Makefile, src/cmd/INIT/Makefile, src/cmd/Makefile,
src/cmd/builtin/Makefile, src/cmd/ksh93/Makefile, src/lib/Makefile,
src/lib/libast/Makefile, src/lib/libcmd/Makefile,
src/lib/libdll/Makefile, src/lib/libsum/Makefile:
- Removed.
src/Mamfile, src/cmd/INIT/Mamfile, src/cmd/Mamfile,
src/cmd/builtin/Mamfile, src/cmd/ksh93/Mamfile, src/lib/Mamfile,
src/lib/libast/Mamfile, src/lib/libcmd/Mamfile,
src/lib/libdll/Mamfile, src/lib/libsum/Mamfile:
- Indent the code with tabs.
- In ksh93/Mamfile, add ${KSH_SHOPT_FLAGS} to every $CC command.
- In ksh93/Mamfile, add "prev SHOPT.sh" for every *.o file
  so they are rebuilt whenever SHOPT.sh changes.
bin/Mamfile_indent:
- Added, in case someone wants to re-indent a Mamfile.
src/cmd/INIT/proto.c, src/cmd/INIT/ratz.c, src/cmd/INIT/release.c,
src/lib/libast/features/common, src/lib/libast/include/ast.h:
- Tell clang to suppress annoying warnings about coding style that
  it disapproves of (mainly concerning the use of parentheses).
src/cmd/INIT/cc.darwin, src/cmd/INIT/cc.freebsd,
src/cmd/INIT/cc.openbsd:
- Remove now-redundant clang warning suppression flags.
Resolves: https://github.com/ksh93/ksh/issues/60
			
			
This commit is contained in:
		
							parent
							
								
									47468f56c2
								
							
						
					
					
						commit
						6cc2f6a0af
					
				
					 35 changed files with 11768 additions and 12763 deletions
				
			
		|  | @ -1,90 +0,0 @@ | |||
| /* | ||||
|  * standalone versions of -lcmd builtins | ||||
|  */ | ||||
| 
 | ||||
| :PACKAGE: ast cmd:space | ||||
| 
 | ||||
| LICENSE = since=1992,author=gsf+dgk | ||||
| 
 | ||||
| :ALL: | ||||
| 
 | ||||
| :: cmdlib.h builtin.c | ||||
| 
 | ||||
| CMD_BUILTIN == | ||||
| CMD_DYNAMIC == | ||||
| CMD_STANDALONE == | ||||
| 
 | ||||
| LINKS = cp: ln mv cksum: md5sum sum | ||||
| NOBIN = getconf | ||||
| 
 | ||||
| CAT = $(STDCAT|"cat") | ||||
| CMP = $(STDCMP|"cmp") 2>/dev/null | ||||
| CP = $(STDCP|"cp") | ||||
| LN = $(STDLN|"ln") | ||||
| RM = $(STDRM|"rm") | ||||
| 
 | ||||
| BUILTINS :COMMAND: cmdlist.h | ||||
| 	$(SED) -e '/^CMDLIST(.*)$/!d' -e 's/CMDLIST(\(.*\))/\1/' $(NOBIN:C,.*,-e '/^&$/d',) $(LINKS:N!=*[:]:C,.*,-e '/^&$/d',) $(*) | ||||
| 
 | ||||
| .INIT : .builtin | ||||
| 
 | ||||
| .builtin : .MAKE .VIRTUAL .FORCE | ||||
| 	local T I | ||||
| 	if T = "$(NOBIN:D=$(BINDIR):B:S:T=F)" | ||||
| 		{ $(RM) $(RMFLAGS) $(T) } | ||||
| 	end | ||||
| 	:ALL: $(BUILTINS) | ||||
| 	T = -lcmd | ||||
| 	if "$(PACKAGE_OPTIONS:N=optimize-space)" && "$(T:T=F)" == "-lcmd" | ||||
| 		T := $(BUILTINS:O=1) | ||||
| 		$(T) :: CMD_BUILTIN=1 CMD_DYNAMIC=1 builtin.c -lcmd -ldll | ||||
| 		for I $(BUILTINS:O>1) | ||||
| 			$(I) :LINK: $(T) | ||||
| 		end | ||||
| 		for I $(LINKS) | ||||
| 			if I != "*:" | ||||
| 				$(I) :LINK: $(T) | ||||
| 			end | ||||
| 		end | ||||
| 	else | ||||
| 		$(BINDIR) :INSTALLDIR: $(BUILTINS) | ||||
| 		$(BUILTINS) : .COMMAND $(&$("%.c":T=SM%)) CMD_BUILTIN=b_$$(<:B) builtin.c $(*$("%.c":T=SM%)) | ||||
| 			$(CAT) $(*:N=*builtin.c) > $(<).c | ||||
| 			$(RM) $(RMFLAGS) $(<) | ||||
| 			$(@$("%.c":T=SM%):/.*builtin.c$/$(<).c/) | ||||
| 			$(RM) $(RMFLAGS) $(<).c | ||||
| 		for I $(LINKS) | ||||
| 			if I == "*:" | ||||
| 				T := $(I:/.$//) | ||||
| 			else | ||||
| 				$(I) :LINK: $(T) | ||||
| 			end | ||||
| 		end | ||||
| 	end | ||||
| 
 | ||||
| ":BUILTIN:" : .MAKE .OPERATOR | ||||
| 	local T P | ||||
| 	for T $(>) | ||||
| 		if T == "*=*" | ||||
| 			$(P).o : $(T) | ||||
| 		elif T == "[-+]l*" | ||||
| 			$(P) : $(T) | ||||
| 		else | ||||
| 			eval | ||||
| 			$(T) :: CMD_STANDALONE=b_$(T) $(T).c | ||||
| 			end | ||||
| 			P := $(T) | ||||
| 		end | ||||
| 	end | ||||
| 
 | ||||
| :BUILTIN: dlls LICENSE=since=2002,author=gsf -ldll look mime \ | ||||
| 		pty LICENSE=since=2001,author=gsf+dgk -lutil \
 | ||||
| 		nl LICENSE=since=2003,author=dgk asa od pr \
 | ||||
| 		strings tr uudecode -luu uuencode -luu what who | ||||
| 
 | ||||
| dontcare -lutil | ||||
| 
 | ||||
| :: PROMO.mm RELEASE | ||||
| 
 | ||||
| :TEST: asa cat chmod chown cksum cmp cp cut date expr fmt head join ln \ | ||||
| 	look mkdir mkfifo mktemp mv nl od paste rm tail tr uniq uuencode wc | ||||
|  | @ -41,56 +41,56 @@ setv YACCFLAGS -d | |||
| make ${PACKAGEROOT}/lib/package/ast.lic | ||||
| done ${PACKAGEROOT}/lib/package/ast.lic | ||||
| make .INIT | ||||
| make ${PACKAGE_ast_INCLUDE}/cmdlist.h | ||||
| make ${PACKAGE_ast_INCLUDE}/prototyped.h implicit | ||||
| done ${PACKAGE_ast_INCLUDE}/prototyped.h dontcare | ||||
| done ${PACKAGE_ast_INCLUDE}/cmdlist.h | ||||
| exec - sed -e '/^CMDLIST(.*)$/!d' -e 's/CMDLIST(\(.*\))/\1/' -e '/^getconf$/d' -e '/^ln$/d' -e '/^mv$/d' -e '/^md5sum$/d' -e '/^sum$/d' ${PACKAGE_ast_INCLUDE}/cmdlist.h | ||||
| bind -lcmd | ||||
| 	make ${PACKAGE_ast_INCLUDE}/cmdlist.h | ||||
| 		make ${PACKAGE_ast_INCLUDE}/prototyped.h implicit | ||||
| 		done ${PACKAGE_ast_INCLUDE}/prototyped.h dontcare | ||||
| 	done ${PACKAGE_ast_INCLUDE}/cmdlist.h | ||||
| 	exec - sed -e '/^CMDLIST(.*)$/!d' -e 's/CMDLIST(\(.*\))/\1/' -e '/^getconf$/d' -e '/^ln$/d' -e '/^mv$/d' -e '/^md5sum$/d' -e '/^sum$/d' ${PACKAGE_ast_INCLUDE}/cmdlist.h | ||||
| 	bind -lcmd | ||||
| done .INIT dontcare virtual | ||||
| make install | ||||
| make pty | ||||
| make pty.o | ||||
| make pty.c | ||||
| make FEATURE/pty implicit | ||||
| meta FEATURE/pty features/%>FEATURE/% features/pty pty | ||||
| make features/pty | ||||
| done features/pty | ||||
| exec - iffe -v -c '${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -lm' ref ${mam_cc_L+-L${INSTALLROOT}/lib} -I${PACKAGE_ast_INCLUDE} -I${INSTALLROOT}/include ${mam_libast} ${mam_libcmd} : run features/pty | ||||
| done FEATURE/pty generated | ||||
| make ${PACKAGE_ast_INCLUDE}/ast_time.h implicit | ||||
| done ${PACKAGE_ast_INCLUDE}/ast_time.h | ||||
| prev ${PACKAGE_ast_INCLUDE}/vmalloc.h implicit | ||||
| prev ${PACKAGE_ast_INCLUDE}/regex.h implicit | ||||
| make ${PACKAGE_ast_INCLUDE}/proc.h implicit | ||||
| prev ${PACKAGE_ast_INCLUDE}/ast.h implicit | ||||
| prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit | ||||
| done ${PACKAGE_ast_INCLUDE}/proc.h | ||||
| prev ${PACKAGE_ast_INCLUDE}/error.h implicit | ||||
| prev ${PACKAGE_ast_INCLUDE}/cmd.h implicit | ||||
| done pty.c | ||||
| meta pty.o %.c>%.o pty.c pty | ||||
| prev pty.c | ||||
| setv CMD_STANDALONE -DCMD_STANDALONE="b_pty" | ||||
| setv LICENSE -DLICENSE="since=2001,author=gsf+dgk" | ||||
| exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -I. -I${PACKAGE_ast_INCLUDE} -DERROR_CATALOG=\""builtin"\" -D_PACKAGE_ast -DCMD_STANDALONE=b_pty -DUSAGE_LICENSE=\""[-author?Glenn Fowler <gsf@research.att.com>][-author?David Korn <dgk@research.att.com>][-copyright?Copyright (c) 2001-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?builtin]"\" -c pty.c | ||||
| done pty.o generated | ||||
| bind -lutil dontcare | ||||
| setv CMD_STANDALONE -DCMD_STANDALONE="b_pty" | ||||
| exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -lm ${mam_cc_L+-L.} ${mam_cc_L+-L${INSTALLROOT}/lib} -o pty pty.o ${mam_libutil} ${mam_libast} ${mam_libcmd} | ||||
| done pty generated | ||||
| make ${INSTALLROOT}/bin | ||||
| exec - if silent test ! -d ${INSTALLROOT}/bin | ||||
| exec - then mkdir -p ${INSTALLROOT}/bin | ||||
| exec - fi | ||||
| done ${INSTALLROOT}/bin generated | ||||
| make ${INSTALLROOT}/bin/pty | ||||
| prev pty | ||||
| exec - test '' = 'pty' || ${STDCMP} 2>/dev/null -s pty ${INSTALLROOT}/bin/pty || { ${STDMV} ${INSTALLROOT}/bin/pty ${INSTALLROOT}/bin/pty.old 2>/dev/null || true; ${STDCP} pty ${INSTALLROOT}/bin/pty ;} | ||||
| done ${INSTALLROOT}/bin/pty generated | ||||
| make ${INSTALLROOT}/bin | ||||
| exec - if silent test ! -d ${INSTALLROOT}/bin | ||||
| exec - then mkdir -p ${INSTALLROOT}/bin | ||||
| exec - fi | ||||
| done ${INSTALLROOT}/bin virtual | ||||
| 	make pty | ||||
| 		make pty.o | ||||
| 			make pty.c | ||||
| 				make FEATURE/pty implicit | ||||
| 					meta FEATURE/pty features/%>FEATURE/% features/pty pty | ||||
| 					make features/pty | ||||
| 					done features/pty | ||||
| 					exec - iffe -v -c '${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -lm' ref ${mam_cc_L+-L${INSTALLROOT}/lib} -I${PACKAGE_ast_INCLUDE} -I${INSTALLROOT}/include ${mam_libast} ${mam_libcmd} : run features/pty | ||||
| 				done FEATURE/pty generated | ||||
| 				make ${PACKAGE_ast_INCLUDE}/ast_time.h implicit | ||||
| 				done ${PACKAGE_ast_INCLUDE}/ast_time.h | ||||
| 				prev ${PACKAGE_ast_INCLUDE}/vmalloc.h implicit | ||||
| 				prev ${PACKAGE_ast_INCLUDE}/regex.h implicit | ||||
| 				make ${PACKAGE_ast_INCLUDE}/proc.h implicit | ||||
| 					prev ${PACKAGE_ast_INCLUDE}/ast.h implicit | ||||
| 					prev ${PACKAGE_ast_INCLUDE}/prototyped.h implicit | ||||
| 				done ${PACKAGE_ast_INCLUDE}/proc.h | ||||
| 				prev ${PACKAGE_ast_INCLUDE}/error.h implicit | ||||
| 				prev ${PACKAGE_ast_INCLUDE}/cmd.h implicit | ||||
| 			done pty.c | ||||
| 			meta pty.o %.c>%.o pty.c pty | ||||
| 			prev pty.c | ||||
| 			setv CMD_STANDALONE -DCMD_STANDALONE="b_pty" | ||||
| 			setv LICENSE -DLICENSE="since=2001,author=gsf+dgk" | ||||
| 			exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -I. -I${PACKAGE_ast_INCLUDE} -DERROR_CATALOG=\""builtin"\" -D_PACKAGE_ast -DCMD_STANDALONE=b_pty -DUSAGE_LICENSE=\""[-author?Glenn Fowler <gsf@research.att.com>][-author?David Korn <dgk@research.att.com>][-copyright?Copyright (c) 2001-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html][--catalog?builtin]"\" -c pty.c | ||||
| 		done pty.o generated | ||||
| 		bind -lutil dontcare | ||||
| 		setv CMD_STANDALONE -DCMD_STANDALONE="b_pty" | ||||
| 		exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -lm ${mam_cc_L+-L.} ${mam_cc_L+-L${INSTALLROOT}/lib} -o pty pty.o ${mam_libutil} ${mam_libast} ${mam_libcmd} | ||||
| 	done pty generated | ||||
| 	make ${INSTALLROOT}/bin | ||||
| 		exec - if silent test ! -d ${INSTALLROOT}/bin | ||||
| 		exec - then mkdir -p ${INSTALLROOT}/bin | ||||
| 		exec - fi | ||||
| 	done ${INSTALLROOT}/bin generated | ||||
| 	make ${INSTALLROOT}/bin/pty | ||||
| 		prev pty | ||||
| 		exec - test '' = 'pty' || ${STDCMP} 2>/dev/null -s pty ${INSTALLROOT}/bin/pty || { ${STDMV} ${INSTALLROOT}/bin/pty ${INSTALLROOT}/bin/pty.old 2>/dev/null || true; ${STDCP} pty ${INSTALLROOT}/bin/pty ;} | ||||
| 	done ${INSTALLROOT}/bin/pty generated | ||||
| 	make ${INSTALLROOT}/bin | ||||
| 		exec - if silent test ! -d ${INSTALLROOT}/bin | ||||
| 		exec - then mkdir -p ${INSTALLROOT}/bin | ||||
| 		exec - fi | ||||
| 	done ${INSTALLROOT}/bin virtual | ||||
| done install virtual | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue