summaryrefslogblamecommitdiffstats
path: root/c/Makefile.in
blob: 2f3eaaedc005e85245505e9169026a3546d02103 (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                                








                                 
                
                         
                             
 
                                                  

                                        

                        
                                                                           






                                                                         







                                                                        
                                                          
                                             

                                                           
                                            


                                                                             
                                           
                                            
                         
                      

                
                          
                 



                                                             

                                     
                                                                    
                                        
                                
                                                                      



                                                                   


                                       


                                               







                                                

                            






                                          








                                                                          
     
                                                                 


                                                                          








                                     



                                                                                      

                                                                            
 




                                                        
                                                 
                                                          



                                 





                                     
                    
#
#  $Id$
#
# top level directory for RTEMS build tree
# This Makefile is *not* a good example of a directory Makefile.
#

@SET_MAKE@
srcdir = @srcdir@
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@
RTEMS_ROOT = @top_srcdir@
PROJECT_ROOT = @PROJECT_ROOT@

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

# 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 . -name Makefile \
	    -exec grep -l "^preinstall" {} \; > 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)
	@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) 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

dirs:
	-$(MKDIR) ${CREATE_DIRS:%=$(PROJECT_ROOT)/$(RTEMS_BSP)/%}
	if test -d $(PROJECT_ROOT)/c/src/lib/libhwapi; then \
		(cd $(PROJECT_ROOT)/c/src/lib/libhwapi ; $(MAKE) mkdirs) \
	fi

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
	-$(MKDIR) $(prefix)/
	-$(MKDIR) $(prefix)/rtems
	-$(RM) -rf $(prefix)/rtems/$(RTEMS_BSP)
	cd ../; tar cf - $(RTEMS_BSP)/[bilsuM]* | \
		(cd $(prefix)/rtems; 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