forked from Imagelibrary/rtems
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
This is a snapshot of my attempt to fit the FreeBSD networking code into RTEMS. Things seem to be working! Things that need to be done: 1) More documentation! 2) Figure out what's still not working :-) 3) Rationalize the include files. Right now I have a special hack in the Makefile to ensure that I pick up the FreeBSD versions of the include files that are duplicated between RTEMS and FreeBSD. The network device driver source should move to the BSP source tree. 4) Have a look at all the FIXME comments. 5) Go through and make sure that all the source files are free of undesired copyright restrictions. Initial Changes =============== 19-AUG-1998 snapshot - Pulled BOOTP initialization out of rtems_glue. Applications which don't used BOOTP are now about 5k smaller. - Loopback interface is not installed by default, rather it is attached like any other interface. Saves about 0.5 kbytes. - Add rtems_bsdnet_show_if_stats(); - Moved test programs from below freebsd directory. 18-AUG-1998 snapshot - Removed some include files that were already part of RTEMS. - Cleaned up machine/types.h to prepare for inclusion in RTEMS source. - Added syslog library routines -- much simpler than KA9Q version. Sockets can be shared among tasks (as long as the send is protected by a mutex) so there's no need for a Syslog Daemon. 16-AUG-1998 snapshot - Table-driven configuration (networkconfig.h). - Cleaned up rtems_bsdnet.h. - BOOTP now retries properly -- Note to Joel: The dichotomy between RTEMS and UNIX error codes is a real pain! 14-AUG-1998 snapshot - Added dummy getprotobyname() and getprotobynum() functions. - Added socket ioctl. - Added application-level entry to manipulate routing tables. - Added non-BOOTP network initialization. 13-AUG-1998 snapshot - Changed some BOOTP addresses from sockaddr_in to inaddr; - Get DNS information from BOOTP reply. - Got DNS lookups working. Bloatware comes to RTEMS -- invoking gethostbyname() drags in and extra 40 kbytes of code! - Added hostname lookup program. 12-AUG-1998 snapshot - Added startup delay to network initialization. - More statistic-printing routines. - Added TFTP driver and test program - Modified TFTP test program to use networkconfig.h. - Removed unused include files. - Added from ftp://ftp.ca.FreeBSD.ORG/pub/FreeBSD/FreeBSD-current/src/lib/libc/net. 11-AUG-1998 snapshot. - Added getpeername() - Added M68k versions of IP checksum code - Added TCP timing program to snapshot. 02-AUG-1998 snapshot.