forked from Imagelibrary/rtems
and RPC support to RTEMS. Thanks. :) Email follows:
Hello,
For Xmas, here is the Remote Debugger on RTEMS !
Here are 2 patches for the Remote Debugger on RTEMS for pc386 from Linux
host :
- one for RTEMS it self,
- one for GDB-4.17.
1/ RTEMS patch
--------------
This patch adds 2 libraries :
- a simplified SUN RPC library
- the Remote Debugger library
The configuration command is the following :
../rtems4/configure --target=i386-rtemself --enable-rtemsbsp=pc386
--enable-rdbg
The SUN RPC library is built only if networking is set.
The RDBG library is built if networking and enable-rdbg are set.
The function used to initialize the debugger is :
rtems_rdbg_initialize ();
A special function has been created to force a task to be
in a "debug" state : enterRdbg().
The use of this function is not mandatory.
2/ GDB-4.17 patch
-----------------
This patch create a new RTEMS target for GDB-4.17.
The configuration command is the following :
./configure --enable-shared --target=i386RTEMS
To connect to a target, use :
target rtems [your_site_address]
Then, attach the target using : attach 1
And... Debug ;)
You can obtain the original GDB-4.17 on
ftp://ftp.debian.org/debian/dists/stable/main/source/devel/gdb_4.17.orig.tar.gz
This has been tested from a Debian 2.0.1 linux host.
145 lines
4.1 KiB
Makefile
145 lines
4.1 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@
|
|
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
|