203 строки
8.2 KiB
Makefile
203 строки
8.2 KiB
Makefile
#-*-sh-*-
|
|
CC = @CC@
|
|
CFLAGS = @CFLAGS@ @SLANG_DLL_CFLAGS@
|
|
LDFLAGS = @LDFLAGS@
|
|
DLINK_FLAGS = @DYNAMIC_LINK_FLAGS@
|
|
CONFIG_DIR = @CONFIG_DIR@
|
|
OBJDIR = $(ARCH)objs
|
|
SOBJDIR = static_objs
|
|
SRCDIR = $(CONFIG_DIR)/slsh
|
|
#---------------------------------------------------------------------------
|
|
# Installation location of the slang library
|
|
#---------------------------------------------------------------------------
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
datarootdir = @datarootdir@
|
|
INST_LIB_DIR = @libdir@
|
|
SLANG_INST_INC = -I@includedir@
|
|
SLANG_INST_LIB = -L$(INST_LIB_DIR)
|
|
#---------------------------------------------------------------------------
|
|
SLANG_SRCINC = -I@SRCDIR@
|
|
SLANG_ELFLIB = -L@ELFDIR@# for dynamically linked
|
|
SLANG_OBJLIB = -L@OBJDIR@# for statically linked
|
|
#---------------------------------------------------------------------------
|
|
DYNAMIC_LIBS = @TERMCAP@ @DYNAMIC_LINK_LIB@ @LIBS@ @M_LIB@
|
|
STATIC_LIBS = @TERMCAP@ @LIBS@ @M_LIB@
|
|
RPATH = @RPATH@
|
|
#----------------------------------------------------------------------------
|
|
INSTALL = @INSTALL@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
MKINSDIR = $(CONFIG_DIR)/autoconf/mkinsdir.sh
|
|
#----------------------------------------------------------------------------
|
|
# Where system-wide slsh.rc, scripts, and library files reside
|
|
#----------------------------------------------------------------------------
|
|
SLSH_CONF_DIR = @sysconfdir@
|
|
SLSH_LIB_DIR = $(datarootdir)/slsh
|
|
SLSH_HELP_DIR = $(SLSH_LIB_DIR)/help
|
|
SLSH_DOC_DIR = $(datarootdir)/doc/slsh
|
|
SLSH_LOCALLIB_DIR = $(SLSH_LIB_DIR)/local-packages
|
|
SLSH_SCRIPT_DIR = $(SLSH_LIB_DIR)/scripts
|
|
SCRIPTS = jpegsize lsrpm sldb svnsh slprof slstkchk
|
|
#---------------------------------------------------------------------------
|
|
# Hard-coded paths may be configured during run-time via the SLSH_CONF_DIR
|
|
# and SLSH_PATH env variables. The names of those variables may be
|
|
# changed here. The SLSH_LIB_DIR variable has been deprecated.
|
|
#
|
|
SLSH_CONF_DIR_ENV = "SLSH_CONF_DIR"
|
|
SLSH_PATH_ENV = "SLSH_PATH"
|
|
SLSH_LIB_DIR_ENV = "SLSH_LIB_DIR"
|
|
#---------------------------------------------------------------------------
|
|
# If you want GNU readline instead of slang's readline, then enable it here
|
|
#---------------------------------------------------------------------------
|
|
GNU_READLINE = @GNU_READLINE@
|
|
READLINE_LIB = @LIB_READLINE@
|
|
#---------------------------------------------------------------------------
|
|
# DESTDIR is designed to facilitate making packages. Normally it is empty
|
|
#---------------------------------------------------------------------------
|
|
#DESTDIR =
|
|
BIN_DIR = @bindir@
|
|
MAN_DIR = @mandir@/man1
|
|
DEST_LIB_DIR = -L$(DESTDIR)@libdir@
|
|
DEST_BIN_DIR = $(DESTDIR)$(BIN_DIR)
|
|
DEST_MAN_DIR = $(DESTDIR)$(MAN_DIR)
|
|
DEST_SLSH_CONF_DIR = $(DESTDIR)$(SLSH_CONF_DIR)
|
|
DEST_SLSH_LIB_DIR = $(DESTDIR)$(SLSH_LIB_DIR)
|
|
DEST_SLSH_HELP_DIR = $(DESTDIR)$(SLSH_HELP_DIR)
|
|
DEST_SLSH_LOCALLIB_DIR = $(DESTDIR)$(SLSH_LOCALLIB_DIR)
|
|
DEST_SLSH_SCRIPT_DIR = $(DESTDIR)$(SLSH_SCRIPT_DIR)
|
|
DEST_SLSH_DOC_DIR= $(DESTDIR)$(SLSH_DOC_DIR)
|
|
|
|
#----------------------------------------------------------------------------
|
|
# These should be empty for production code
|
|
#----------------------------------------------------------------------------
|
|
SLSYSWRAP_DEF = @DSLSYSWRAP@
|
|
SLSYSWRAP_LIB = @LIB_SLSYSWRAP@
|
|
#----------------------------------------------------------------------------
|
|
# End of user configuration
|
|
#----------------------------------------------------------------------------
|
|
@SET_MAKE@
|
|
SHELL = /bin/sh
|
|
INST_LIBS = $(DEST_LIB_DIR) $(RPATH) $(SLANG_INST_LIB) -lslang $(READLINE_LIB) $(DYNAMIC_LIBS)
|
|
DEFS = -DSLSH_CONF_DIR='"$(SLSH_CONF_DIR)"' -DSLSH_PATH='"$(SLSH_LIB_DIR)"' \
|
|
-DSLSH_CONF_DIR_ENV='$(SLSH_CONF_DIR_ENV)' -DSLSH_LIB_DIR_ENV='$(SLSH_LIB_DIR_ENV)' \
|
|
-DSLSH_PATH_ENV='$(SLSH_PATH_ENV)' $(SLSYSWRAP_DEF)
|
|
SDEFS = $(DEFS) -DSLSH_STATIC
|
|
SRC_LIBS = $(SLANG_ELFLIB) -lslang $(SLSYSWRAP_LIB) $(READLINE_LIB) $(DYNAMIC_LIBS)
|
|
STATIC_SRC_LIBS = $(SLANG_OBJLIB) -lslang $(SLSYSWRAP_LIB) $(READLINE_LIB) $(STATIC_LIBS)
|
|
OBJDIR_TSTAMP = $(OBJDIR)/tstamp
|
|
SOBJDIR_TSTAMP = $(SOBJDIR)/tstamp
|
|
#
|
|
all: $(OBJDIR)/slsh_exe
|
|
slsh: $(OBJDIR)/slsh
|
|
$(OBJDIR)/slsh_exe: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o
|
|
$(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh_exe $(LDFLAGS) $(DLINK_FLAGS) $(SRC_LIBS)
|
|
$(OBJDIR)/slsh: $(OBJDIR)/slsh.o $(OBJDIR)/readline.o
|
|
$(CC) $(CFLAGS) $(OBJDIR)/slsh.o $(OBJDIR)/readline.o -o $(OBJDIR)/slsh $(LDFLAGS) $(DLINK_FLAGS) $(INST_LIBS)
|
|
$(OBJDIR)/slsh.o: $(OBJDIR_TSTAMP) slsh.c slsh.h config.h Makefile
|
|
cd $(OBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(DEFS) $(SRCDIR)/slsh.c
|
|
$(OBJDIR)/readline.o: $(OBJDIR_TSTAMP) readline.c slsh.h config.h Makefile
|
|
cd $(OBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(DEFS) -DUSE_GNU_READLINE=$(GNU_READLINE) $(SRCDIR)/readline.c
|
|
$(OBJDIR_TSTAMP):
|
|
-$(MKINSDIR) $(OBJDIR)
|
|
touch $(OBJDIR_TSTAMP)
|
|
#
|
|
static: $(SOBJDIR)/slsh
|
|
$(SOBJDIR)/slsh: $(SOBJDIR)/slsh.o $(SOBJDIR)/readline.o
|
|
$(CC) $(CFLAGS) $(SOBJDIR)/slsh.o $(SOBJDIR)/readline.o -o $(SOBJDIR)/slsh $(LDFLAGS) $(STATIC_SRC_LIBS)
|
|
$(SOBJDIR)/slsh.o: $(SOBJDIR_TSTAMP) slsh.c slsh.h config.h Makefile
|
|
cd $(SOBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(SDEFS) $(SRCDIR)/slsh.c
|
|
$(SOBJDIR)/readline.o: $(SOBJDIR_TSTAMP) readline.c slsh.h config.h Makefile
|
|
cd $(SOBJDIR) && $(CC) $(SLANG_SRCINC) $(CFLAGS) -c $(SDEFS) -DUSE_GNU_READLINE=$(GNU_READLINE) $(SRCDIR)/readline.c
|
|
$(SOBJDIR_TSTAMP):
|
|
-$(MKINSDIR) $(SOBJDIR)
|
|
touch $(SOBJDIR_TSTAMP)
|
|
#
|
|
config.h: ../src/config.h
|
|
cp ../src/config.h .
|
|
install_directories:
|
|
$(MKINSDIR) $(DEST_BIN_DIR)
|
|
$(MKINSDIR) $(DEST_MAN_DIR)
|
|
$(MKINSDIR) $(DEST_SLSH_CONF_DIR)
|
|
$(MKINSDIR) $(DEST_SLSH_LIB_DIR)
|
|
$(MKINSDIR) $(DEST_SLSH_LIB_DIR)/rline
|
|
$(MKINSDIR) $(DEST_SLSH_HELP_DIR)
|
|
$(MKINSDIR) $(DEST_SLSH_LOCALLIB_DIR)
|
|
$(MKINSDIR) $(DEST_SLSH_SCRIPT_DIR)
|
|
$(MKINSDIR) $(DEST_SLSH_DOC_DIR)/html
|
|
install_lib_files:
|
|
@for X in lib/*.sl; \
|
|
do \
|
|
echo $(INSTALL_DATA) $$X $(DEST_SLSH_LIB_DIR); \
|
|
$(INSTALL_DATA) $$X $(DEST_SLSH_LIB_DIR); \
|
|
if [ "$$?" != "0" ]; then \
|
|
exit 1; \
|
|
fi; \
|
|
done
|
|
install_rline_files:
|
|
@for X in lib/rline/*.sl lib/rline/slrline.rc; \
|
|
do \
|
|
echo $(INSTALL_DATA) $$X $(DEST_SLSH_LIB_DIR)/rline/; \
|
|
$(INSTALL_DATA) $$X $(DEST_SLSH_LIB_DIR)/rline/; \
|
|
if [ "$$?" != "0" ]; then \
|
|
exit 1; \
|
|
fi; \
|
|
done
|
|
install_scripts:
|
|
@for X in $(SCRIPTS); \
|
|
do \
|
|
echo $(INSTALL) scripts/$$X $(DEST_SLSH_SCRIPT_DIR); \
|
|
$(INSTALL) scripts/$$X $(DEST_SLSH_SCRIPT_DIR); \
|
|
if [ "$$?" != "0" ]; then \
|
|
exit 1; \
|
|
fi; \
|
|
done
|
|
install_help:
|
|
@for X in lib/help/*.hlp; \
|
|
do \
|
|
echo $(INSTALL_DATA) $$X $(DEST_SLSH_HELP_DIR); \
|
|
$(INSTALL_DATA) $$X $(DEST_SLSH_HELP_DIR); \
|
|
if [ "$$?" != "0" ]; then \
|
|
exit 1; \
|
|
fi; \
|
|
done
|
|
install_docs:
|
|
@for X in doc/html/*.html; \
|
|
do \
|
|
echo $(INSTALL_DATA) $$X $(DEST_SLSH_DOC_DIR)/html/; \
|
|
$(INSTALL_DATA) $$X $(DEST_SLSH_DOC_DIR)/html/; \
|
|
if [ "$$?" != "0" ]; then \
|
|
exit 1; \
|
|
fi; \
|
|
done
|
|
$(INSTALL_DATA) doc/man/slsh.1 $(DEST_MAN_DIR)/
|
|
#
|
|
install_slsh:
|
|
$(INSTALL) $(OBJDIR)/slsh $(DEST_BIN_DIR)/
|
|
install_static_slsh:
|
|
$(INSTALL) $(SOBJDIR)/slsh $(DEST_BIN_DIR)/
|
|
install_slshrc:
|
|
$(INSTALL_DATA) etc/slsh.rc $(DEST_SLSH_CONF_DIR)/
|
|
echo 'prepend_to_slang_load_path("$(SLSH_LOCALLIB_DIR)");' >> $(DEST_SLSH_CONF_DIR)/slsh.rc
|
|
install_common: install_directories install_lib_files install_rline_files install_scripts install_help install_docs
|
|
#
|
|
install: slsh install_common install_slsh install_slshrc
|
|
install-static: static install_common install_static_slsh install_slshrc
|
|
#---------------------------------------------------------------------------
|
|
runtests:
|
|
cd lib/test && ./runtests.sh test_*.sl
|
|
#---------------------------------------------------------------------------
|
|
# Housekeeping
|
|
#---------------------------------------------------------------------------
|
|
clean:
|
|
-/bin/rm -f $(OBJDIR_TSTAMP) $(SOBJDIR_TSTAMP)
|
|
-/bin/rm -f *~ $(OBJDIR)/slsh.o $(OBJDIR)/readline.o $(OBJDIR)/slsh $(OBJDIR)/slsh_exe scripts/*~ lib/*~
|
|
-/bin/rm -f $(SOBJDIR)/slsh.o $(SOBJDIR)/readline.o $(SOBJDIR)/slsh $(SOBJDIR)/slsh_exe
|
|
distclean: clean
|
|
-/bin/rm -f Makefile config.h
|
|
#
|
|
.PHONY: all clean distclean symlinks slsh install install_directories \
|
|
install_lib_files install_rline_files install_scripts install_help \
|
|
install_docs install-static static install_common \
|
|
install_slsh install_static_slsh install_slshrc
|
|
|