Files
rtems/c/Makefile.in
Joel Sherrill 196094eb79 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
This one is an enhancement to acpolish.

    It replaces some Makefile variables by others variable in Makefile.ins
    (tries to use unique name for some variables). It therefore eases
    parsing Makefile.ins for further automatic Makefile.in conversions in
    future.

    To apply:
        cd <rtems-source-tree>
        sh <path-to>/rtems-rc-19990407-8.sh
        ./autogen
1999-04-19 13:19:14 +00:00

162 lines
4.6 KiB
Makefile

#
# $Id$
#
# top level directory for RTEMS build tree
# This Makefile is *not* a good example of a directory Makefile.
#
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = ..
subdir = c
INSTALL = @INSTALL@
RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
PROJECT_ROOT = @PROJECT_ROOT@
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
libdir = @libdir@
includedir = @includedir@
target = @target@
manext = 1
mandir = @mandir@/man$(manext)
program_prefix = @program_prefix@
VPATH = @srcdir@
include $(RTEMS_ROOT)/make/custom/${RTEMS_BSP}.cfg
include $(RTEMS_ROOT)/make/directory.cfg
SUB_DIRS=build-tools src
# We only make the install point for the networking header files if needed.
LIBNETWORKING_yes_V = lib/include/networking lib/include/networking/sys \
lib/include/networking/machine lib/include/networking/rtems \
lib/include/networking/vm lib/include/networking/net \
lib/include/networking/netinet lib/include/networking/arpa \
lib/include/networking/nfs
LIBNETWORKING = $(LIBNETWORKING_$(HAS_NETWORKING)_V)
# We only make the rpc install point if networking is enabled.
LIBRPC_yes_V = lib/include/rpc
LIBRPC = $(LIBRPC_$(HAS_NETWORKING)_V)
# We only make the rdbg install point if networking and rdbg is enabled.
LIBRDBG_yes_yes_V = lib/include/rdbg
LIBRDBG = $(LIBRDBG_$(HAS_NETWORKING)_$(HAS_RDBG)_V)
# We only make the rtems++ install point if it is enabled.
LIBRTEMSCPLUSPLUS_yes_V = lib/include/rtems++
LIBRTEMSCPLUSPLUS = $(LIBRTEMSCPLUSPLUS_$(HAS_CPLUSPLUS)_V)
# directories to be created in install point
CREATE_DIRS = \
lib lib/include lib/include/sys lib/include/rtems \
lib/include/rtems/score lib/include/rtems/rtems lib/include/rtems/posix \
lib/include/libc lib/include/libc/sys \
lib/include/motorola lib/include/zilog \
lib/include/libchip \
$(LIBNETWORKING) \
$(LIBRPC) \
$(LIBRDBG) \
$(LIBRTEMSCPLUSPLUS) \
bin samples \
tests tests/screens tests/screens/sptests \
tests/screens/psxtests tests/screens/mptests \
tests/screens/mptests/node1 tests/screens/mptests/node2 \
build-tools update-tools
BUILD_DIRS = ${CREATE_DIRS:%=$(PROJECT_ROOT)/${RTEMS_BSP}/%}
# Make all/install must include 'env'
# if something is added to TARGET_VARIANTS, then account for it here
make_src_makefiles: Makefile.in Makefile
-find src -name Makefile \
-exec grep -l "^preinstall" {} \; | sort > make_src_makefiles.tmp
-grep tools make_src_makefiles.tmp > make_src_makefiles
-grep -v tools make_src_makefiles.tmp >> make_src_makefiles
-rm make_src_makefiles.tmp
pre_install_src: env make_src_makefiles
cd build-tools/scripts; \
$(MAKE) RTEMS_BSP=${RTEMS_BSP} install-exec-local
cd build-tools/src; \
$(MAKE) RTEMS_BSP=${RTEMS_BSP} install-exec-local
@echo "Order of preinstall directories"
cat make_src_makefiles
@echo
CURRDIR=`pwd`; \
for i in `cat make_src_makefiles` ; do \
DIR=`dirname $$i`; \
cd $$DIR; \
$(MAKE) RTEMS_BSP=${RTEMS_BSP} preinstall; \
cd $$CURRDIR; \
done
all: pre_install_src env
debug: pre_install_src env
profile: pre_install_src env
install: all install_files
debug_install: env debug install_files
profile_install: env profile install_files
debug_all: debug
profile_all: profile
# top level clean/clobber will delete the install points
clean_WRAPUP = $(MAKE) clean_wrapup
clobber_WRAPUP = $(MAKE) clean_wrapup
clean_wrapup: clean_tools clean_dirs clean_modules
.PHONY: dirs clean_wrapup clean_dirs clean_tools clean_modules env install
$(BUILD_DIRS):
$(RTEMS_ROOT)/mkinstalldirs $(BUILD_DIRS)
if test -d $(PROJECT_ROOT)/c/src/lib/libhwapi; then \
(cd $(PROJECT_ROOT)/c/src/lib/libhwapi ; $(MAKE) mkdirs) \
fi
dirs: $(BUILD_DIRS)
distclean: clobber
clean_dirs:
$(RM) -r $(PROJECT_RELEASE)
clean_tools:
cd build-tools; $(MAKE) clean
$(PROJECT_ROOT)/${RTEMS_BSP}/Makefile.inc: $(PROJECT_ROOT)/make/Templates/Makefile.inc
echo "RTEMS_BSP = ${RTEMS_BSP}" > $@
$(CAT) $< >> $@
# NOTE: The wildcard on the install should pick up everything except
# the tests directory. This significantly minimizes the install size.
install_files: $(PROJECT_ROOT)/${RTEMS_BSP}/Makefile.inc
@top_srcdir@/mkinstalldirs $(prefix)
-$(RM) -rf $(prefix)/${RTEMS_BSP}
cd ../; tar cf - ${RTEMS_BSP}/[bilsuM]* | \
(cd $(prefix); tar xpBf - )
cd ../make; $(MAKE) RTEMS_BSP=${RTEMS_BSP} install
tests:
cd src/tests; $(MAKE) all
debug_tests: debug
cd src/tests; $(MAKE) debug
profile_tests: profile
cd src/tests; $(MAKE) profile
env: $(SRCS) dirs
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status