source: rtems/c/src/lib/libc/Makefile.in @ 9572c41

4.104.114.84.95
Last change on this file since 9572c41 was d8ff793, checked in by Joel Sherrill <joel.sherrill@…>, on 03/19/99 at 22:27:02

Towards automake XI patch from Ralf Corsepius <corsepiu@…>:

This patch is the most scary of all proposals I've been mailing to you
this week until now.

It consists of 3 parts:

  1. a patch
  2. a perl script (acpolish)
  3. a shell script wrapper to invoke the perl-script.

The perl-script reads in each Makefile.in and modifies them
("polishes/beautifies" them :-).

These modifications are not easy to describe:

Basically, it hard-codes some automake Makefile-variables and rules into
RTEMS autoconf-Makefile.ins (Note: autoconf vs. automake!!) and converts
some settings/variables to configure scripts' requirements (Yes,
plural).

E.g. it adds the automake standard variables $top_builddir and $subdir,
adds dependency rules for automatic re-generation of Makefiles from
Makefile.in, adds support variables for relative paths to multiple
configure scripts etc.

The patch is a one-line patch to enable the support of the new features
added by acpolish.

The shell script is a wrapper which pokes around inside of the source
tree for Makefile.ins and invokes acpolish on all autoconf-Makefile.ins.

acpolish is designed to be able to run several times on the same
Makefile.in and may once become a more general tool to convert RTEMS
Makefile.in to automake. Therefore, I'd like to keep it inside of source
tree. (e.g. as contrib/acpolish or c/update-tools/acpolish). However, it
doesn't make sense to export it outside of RTEMS.

To apply this:

cd <source-tree>
patch -p1 -E < <path-to-patch>/rtems-rc-19990318-1.diff
tar xzvf <path-to>/rtems-rc-polish.tar.gz
./rtems-polish.sh
./autogen

Note: The path contrib/acpolish is hard-coded into rtems-polish.sh, if
you decide to put it in an alternative place, please modify
rtems-polish.sh to reflect this change.

Later:
cvs rm make/rtems.cfg (It isn't used anymore)
cvs add contrib
cvs add contrib/acpolish
cvs commit

I've tested this intensively, but naturally I can't exclude bugs.

Ralf.

PS.: Most probably, this is the last "Towards automake" patch. The next
one probably will be a real automake patch.

  • Property mode set to 100644
File size: 2.9 KB
Line 
1#
2#  $Id$
3#
4
5@SET_MAKE@
6srcdir = @srcdir@
7top_srcdir = @top_srcdir@
8top_builddir = ../../../..
9subdir = c/src/lib/libc
10
11INSTALL = @INSTALL@
12
13RTEMS_ROOT = $(top_srcdir)/@RTEMS_TOPdir@
14PROJECT_ROOT = @PROJECT_ROOT@
15
16VPATH = @srcdir@
17
18LIBNAME=libcsupport.a
19LIB=${ARCH}/${LIBNAME}
20
21BASE_FS_PIECES=base_fs mount unmount ioman \
22  libio libio_sockets eval
23
24IMFS_PIECES= imfs_chown imfs_creat imfs_directory imfs_eval imfs_free \
25    imfs_gtkn imfs_init imfs_link imfs_mknod imfs_mount imfs_fchmod \
26    imfs_rmnod imfs_unlink imfs_unmount imfs_utime imfs_ntype imfs_stat \
27    imfs_getchild memfile deviceio imfs_handlers imfs_debug imfs_symlink \
28    imfs_readlink imfs_fdatasync
29
30TERMIOS_PIECES= cfgetispeed cfgetospeed cfsetispeed cfsetospeed \
31  tcgetattr tcsetattr tcdrain termios
32
33SYSTEM_CALL_PIECES=\
34  open close read write lseek ioctl \
35  mkdir mknod mkfifo rmdir chdir \
36  chmod fchmod chown \
37  link unlink umask ftruncate utime \
38  fstat fcntl fpathconf getdents \
39  fsync fdatasync pipe dup dup2  \
40  symlink readlink
41
42DIRECTORY_SCAN_PIECES=\
43  opendir closedir readdir rewinddir scandir seekdir telldir getcwd
44
45MALLOC_PIECES=\
46  malloc __brk __sbrk \
47
48LIBC_GLUE_PIECES=\
49  __gettod __times \
50  truncate access stat pathconf \
51  newlibc no_libc
52
53UNIX_LIBC_PIECES=unixlibc hosterr
54
55C_FILES=$(C_PIECES:%=%.c)
56C_O_FILES=$(C_PIECES:%=${ARCH}/%.o)
57
58H_FILES=$(srcdir)/libcsupport.h
59SYS_H_FILES=
60RTEMS_H_FILES=$(srcdir)/libio.h
61
62SRCS=$(C_FILES) $(H_FILES) $(SYS_H_FILES) $(RTEMS_H_FILES)
63OBJS=$(C_O_FILES)
64
65include $(RTEMS_ROOT)/make/custom/$(RTEMS_BSP).cfg
66include $(RTEMS_ROOT)/make/lib.cfg
67
68# C and C++ source names, if any, go here -- minus the .c or .cc
69ifeq ($(RTEMS_CPU),unix)
70C_PIECES=\
71    $(UNIX_LIBC_PIECES) \
72    $(BASE_FS_PIECES) \
73    $(MALLOC_PIECES) \
74    $(TERMIOS_PIECES)
75else
76C_PIECES=\
77    $(LIBC_GLUE_PIECES) \
78    $(BASE_FS_PIECES) \
79    $(MALLOC_PIECES) \
80    $(TERMIOS_PIECES) \
81    $(SYSTEM_CALL_PIECES) \
82    $(DIRECTORY_SCAN_PIECES) \
83    $(IMFS_PIECES)
84endif
85
86#
87# Add local stuff here using +=
88#
89
90DEFINES  +=
91CPPFLAGS +=
92CFLAGS   += $(LIBC_DEFINES)
93
94#
95# Add your list of files to delete here.  The config files
96#  already know how to delete some stuff, so you may want
97#  to just run 'make clean' first to see what gets missed.
98#  'make clobber' already includes 'make clean'
99#
100
101CLEAN_ADDITIONS += $(LIB)
102CLOBBER_ADDITIONS +=
103
104all:    ${ARCH} preinstall $(LIB)
105        $(INSTALL_VARIANT) -m 644 ${LIB} ${PROJECT_RELEASE}/lib
106
107$(LIB): $(SRCS) ${OBJS}
108        $(make-library)
109
110# Install the library, appending _g or _p as appropriate.
111# for include files, just use $(INSTALL_CHANGE)
112preinstall:
113        $(INSTALL_CHANGE) -m 444 ${RTEMS_H_FILES} $(PROJECT_INCLUDE)/rtems
114        $(INSTALL_CHANGE) -m 444 $(H_FILES) $(PROJECT_INCLUDE)
115        $(INSTALL_CHANGE) -m 444 $(SYS_H_FILES) $(PROJECT_INCLUDE)/sys
116
117Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
118        cd $(top_builddir) \
119         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
Note: See TracBrowser for help on using the repository browser.