1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00
cde/cde/programs/dtksh/Imakefile
Chase 0f3bcae232 dtksh: Turn dtksh aliases into builtins and discard BLT_SPC flag
Upstream ksh has removed it's builtin aliases, favoring instead to make them
all builtin commands, this would also allow us to skip having to manually
merge another file, it was explained best in this email:

"Default aliases are an ugly hack that you are better off without.
Disadvantages include:
- 'unalias -a' becomes basically unusable as it gets rid of commands you
probably want;
- shell functions by those names are ignored (unless you quote their
names upon invocation);
- something like 'cmdname=foo; "$cmdname" bar baz' doesn't work if
$cmdname is an alias.

I strongly recommend removing the BLT_SPC flag from all of
your extra dtksh builtins. Making builtins "special builtins" is of no
real benefit at all, while introducing a pointless restriction: shell
functions by those names cannot be defined, which causes a risk of
incompatibility with scripts written for other shells. The BLT_SPC flag
is for a very few historic builtins that must have certain weird
corner-case behaviour of "special" builtins for POSIX compliance and
Bourne shell compatibility reasons."
2020-07-19 19:15:57 -06:00

116 lines
2.8 KiB
Text

XCOMM $TOG: Imakefile /main/15 1998/04/07 08:55:29 mgreess $
DESKTOP_VERSION_STRING = DesktopVersionString
KSH93SRC = ./ksh93
DEPEND_DEFINES = $(DEPENDDEFINES)
INCLUDES = -I. -I$(KSH93SRC)/include/ast -I$(KSH93SRC)/src/cmd/ksh93/include \
-I$(KSH93SRC)/src/cmd/ksh93 $(TIRPCINC)
/* DEPLIBS contains the list of library depencies for a client.
* LOCAL_LIBRARIES contains the list of libraries on the link line.
* Generally, the dependency form of a library has DEP as a prefix.
* e.g. put $(XLIB) in LOCAL_LIBRARIES and $(DEPXLIB) in DEPLIBS.
* NOTE: if DEPLIBS is not set here, it is by default null and there
* are no library dependencies for clients.
* You cannot put -Llibpath into DEPLIBS. You must put actual
* paths to the library.
*/
DEPLIBS = $(DEPDTHELPLIB) $(DEPDTSVCLIB) $(DEPDTWIDGETLIB) $(DEPDTPRINTLIB) \
$(DEPTTLIB) $(DEPXMLIB) $(DEPXTOOLLIB) $(DEPXLIB) \
$(KSH93SRC)/lib/libast.a
LOCAL_LIBRARIES = $(DTHELPLIB) $(DTWIDGETLIB) $(DTSVCLIB) $(DTPRINTLIB) \
$(TTLIB) $(XMLIB) $(XTOOLLIB) $(XLIB) \
$(KSH93SRC)/lib/libcmd.a $(KSH93SRC)/lib/libast.a
SYS_LIBRARIES = -lm $(DYNLIBSYSLIB) $(REGEXSYSLIB) $(ICONVSYSLIB)
#ifdef HPArchitecture
EXTRA_DEFINES = -Wl,-E -DHPUX_DYNLIB -Wp,-H12000
SYS_LIBRARIES = -lm -ldld
#endif
#ifdef RsArchitecture
EXTRA_DEFINES = -DDYNLIB -D_IBMRPC_
LOCAL_LDFLAGS = -bE:dtksh.exp
#endif
#if defined (SunArchitecture)
EXTRA_DEFINES = -DDYNLIB
#endif
EXTRA_INCLUDES = -I$(DTHELPSRC) -I$(DTPRINTSRC)
#ifdef SunArchitecture
.NO_PARALLEL:
#endif
#ifdef LinuxArchitecture
SYS_LIBRARIES = -lm -ldl
#endif
#define IHaveSubdirs
#define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
SUBDIRS = examples ksh93
KSH93OBJ = $(KSH93SRC)/ksh93.o
MakeSubdirs($(SUBDIRS))
KSH93LIBSHELL = $(KSH93SRC)/src/cmd/ksh93/libshell.a
PROGRAMS = dtksh
SRCS = \
userinit.c \
builtins.c \
widget.c \
dtkcvt.c \
dtkcmds.c \
XtCvtrs.c \
xmcvt.c \
xmcmds.c \
xmwidgets.c \
extra.c \
xmdtksym.c \
findsym.c \
msgs.c
OBJS = \
$(KSH93OBJ) \
libshell.a \
widget.o \
dtkcvt.o \
dtkcmds.o \
XtCvtrs.o \
xmcvt.o \
xmcmds.o \
xmwidgets.o \
extra.o \
xmdtksym.o \
findsym.o \
msgs.o \
$(LOCAL_LIBRARIES2)
all:: dtksh
$(KSH93SRC)/ksh93.o:
cd $(KSH93SRC); $(MAKE)
XCOMM
XCOMM Must replace standard ksh tables of builtins and aliases
XCOMM with our augmented versions.
XCOMM
libshell.a: $(KSH93SLIBSHELL) userinit.o builtins.o
$(CP) $(KSH93LIBSHELL) libshell.a; \
ar d libshell.a userinit.o builtins.o ; \
$(AR) libshell.a userinit.o builtins.o
SpecialObjectRule(userinit.o,$(NULL),-DSHOPT_VSH -DKSHELL -D_TRACE_ )
SpecialObjectRule(builtins.o,$(NULL),-DSHOPT_VSH -DKSHELL -D_TRACE_ )
ComplexProgramTarget($(PROGRAMS))
clean::
@echo " Cleaning ksh directories"
$(SHELL) MakeClean