summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/rtems/Makefile.am')
-rw-r--r--cpukit/rtems/Makefile.am154
1 files changed, 152 insertions, 2 deletions
diff --git a/cpukit/rtems/Makefile.am b/cpukit/rtems/Makefile.am
index 30e4cd2773..6d61e8b8a9 100644
--- a/cpukit/rtems/Makefile.am
+++ b/cpukit/rtems/Makefile.am
@@ -2,8 +2,158 @@
## $Id$
##
+include $(top_srcdir)/automake/multilib.am
+include $(top_srcdir)/automake/compile.am
+include $(top_srcdir)/automake/lib.am
-SUBDIRS = include inline macros src
+$(PROJECT_INCLUDE):
+ @$(mkinstalldirs) $@
+$(PROJECT_INCLUDE)/rtems/rtems:
+ @$(mkinstalldirs) $@
+
+$(PROJECT_INCLUDE)/%.h: include/%.h
+ $(INSTALL_DATA) $< $@
+$(PROJECT_INCLUDE)/%.inl: $(INLINEdir)/%.inl
+ $(INSTALL_DATA) $< $@
+
+PREINSTALL_FILES = $(PROJECT_INCLUDE)
+
+# include
+
+include_HEADERS = include/rtems.h
+
+PREINSTALL_FILES += $(include_HEADERS:include/%.h=$(PROJECT_INCLUDE)/%.h)
+
+# include/rtems/rtems
+include_rtems_rtemsdir = $(includedir)/rtems/rtems
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/rtems
+
+include_H_FILES = include/rtems/rtems/asr.h include/rtems/rtems/attr.h include/rtems/rtems/cache.h \
+ include/rtems/rtems/clock.h include/rtems/rtems/config.h include/rtems/rtems/dpmem.h \
+ include/rtems/rtems/event.h include/rtems/rtems/eventset.h include/rtems/rtems/intr.h \
+ include/rtems/rtems/message.h include/rtems/rtems/modes.h include/rtems/rtems/options.h \
+ include/rtems/rtems/part.h include/rtems/rtems/ratemon.h include/rtems/rtems/region.h \
+ include/rtems/rtems/rtemsapi.h include/rtems/rtems/sem.h include/rtems/rtems/signal.h \
+ include/rtems/rtems/status.h include/rtems/rtems/support.h include/rtems/rtems/tasks.h \
+ include/rtems/rtems/timer.h include/rtems/rtems/types.h
+PREINSTALL_FILES += $(include_H_FILES:include/%=$(PROJECT_INCLUDE)/%)
+include_rtems_rtems_HEADERS = $(include_H_FILES)
+
+## We only build multiprocessing related files if HAS_MP was defined
+include_MP_H_FILES = include/rtems/rtems/eventmp.h include/rtems/rtems/mp.h include/rtems/rtems/msgmp.h \
+ include/rtems/rtems/partmp.h include/rtems/rtems/regionmp.h include/rtems/rtems/semmp.h \
+ include/rtems/rtems/signalmp.h include/rtems/rtems/taskmp.h
+if HAS_MP
+PREINSTALL_FILES += $(include_MP_H_FILES:include/%=$(PROJECT_INCLUDE)/%)
+include_rtems_rtems_HEADERS += $(include_MP_H_FILES)
+endif
+noinst_HEADERS = $(include_MP_H_FILES)
+
+## macros
+
+macro_H_FILES = macros/rtems/rtems/asr.inl macros/rtems/rtems/attr.inl \
+ macros/rtems/rtems/dpmem.inl macros/rtems/rtems/event.inl macros/rtems/rtems/eventset.inl \
+ macros/rtems/rtems/message.inl macros/rtems/rtems/modes.inl macros/rtems/rtems/options.inl \
+ macros/rtems/rtems/part.inl macros/rtems/rtems/ratemon.inl macros/rtems/rtems/region.inl \
+ macros/rtems/rtems/sem.inl macros/rtems/rtems/status.inl macros/rtems/rtems/support.inl \
+ macros/rtems/rtems/tasks.inl macros/rtems/rtems/timer.inl
+noinst_HEADERS += $(macro_H_FILES)
+
+if MACROS
+PREINSTALL_FILES += $(macro_H_FILES:macros/%.inl=$(PROJECT_INCLUDE)/%.inl)
+include_rtems_rtems_HEADERS += $(macro_H_FILES)
+endif
+
+## inline
+
+inline_H_FILES = inline/rtems/rtems/asr.inl inline/rtems/rtems/attr.inl \
+ inline/rtems/rtems/dpmem.inl inline/rtems/rtems/event.inl inline/rtems/rtems/eventset.inl \
+ inline/rtems/rtems/message.inl inline/rtems/rtems/modes.inl inline/rtems/rtems/options.inl \
+ inline/rtems/rtems/part.inl inline/rtems/rtems/ratemon.inl inline/rtems/rtems/region.inl \
+ inline/rtems/rtems/sem.inl inline/rtems/rtems/status.inl inline/rtems/rtems/support.inl \
+ inline/rtems/rtems/tasks.inl inline/rtems/rtems/timer.inl
+
+if INLINE
+PREINSTALL_FILES += $(inline_H_FILES:inline/%.inl=$(PROJECT_INCLUDE)/%.inl)
+include_rtems_rtems_HEADERS += $(inline_H_FILES)
+endif
+noinst_HEADERS += $(inline_H_FILES)
+
+## src
+LIB = $(ARCH)/librtems.a
+
+# We only build multiprocessing related files if HAS_MP was defined
+MP_C_FILES = src/eventmp.c src/mp.c src/msgmp.c src/partmp.c src/regionmp.c \
+ src/semmp.c src/signalmp.c src/taskmp.c
+
+TASK_C_FILES = src/tasks.c src/taskcreate.c src/taskdelete.c src/taskgetnote.c src/taskident.c \
+ src/taskinitusers.c src/taskissuspended.c src/taskmode.c src/taskrestart.c src/taskresume.c \
+ src/tasksetnote.c src/tasksetpriority.c src/taskstart.c src/tasksuspend.c \
+ src/taskwakeafter.c src/taskwakewhen.c src/taskvariableadd.c src/taskvariabledelete.c \
+ src/taskvariableget.c
+
+RATEMON_C_FILES = src/ratemon.c src/ratemoncancel.c src/ratemoncreate.c src/ratemondelete.c \
+ src/ratemongetstatus.c src/ratemonident.c src/ratemonperiod.c src/ratemontimeout.c
+
+INTR_C_FILES = src/intr.c src/intrbody.c src/intrcatch.c
+
+CLOCK_C_FILES = src/rtclock.c src/clockget.c src/clockset.c src/clocktick.c
+
+TIMER_C_FILES = src/rtemstimer.c src/timercancel.c src/timercreate.c src/timerdelete.c \
+ src/timerfireafter.c src/timerfirewhen.c src/timergetinfo.c src/timerident.c src/timerreset.c \
+ src/timerserver.c src/timerserverfireafter.c src/timerserverfirewhen.c
+
+MESSAGE_QUEUE_C_FILES = src/msg.c src/msgqallocate.c src/msgqbroadcast.c src/msgqcreate.c \
+ src/msgqdelete.c src/msgqflush.c src/msgqgetnumberpending.c src/msgqident.c \
+ src/msgqreceive.c src/msgqsend.c src/msgqsubmit.c src/msgqtranslatereturncode.c \
+ src/msgqurgent.c
+
+SEMAPHORE_C_FILES = src/sem.c src/semcreate.c src/semdelete.c src/semident.c src/semobtain.c \
+ src/semrelease.c src/semflush.c src/semtranslatereturncode.c
+
+EVENT_C_FILES = src/event.c src/eventreceive.c src/eventseize.c src/eventsend.c \
+ src/eventsurrender.c src/eventtimeout.c
+
+SIGNAL_C_FILES = src/signal.c src/signalcatch.c src/signalsend.c
+
+REGION_C_FILES = src/region.c src/regioncreate.c src/regiondelete.c src/regionextend.c \
+ src/regiongetsegment.c src/regiongetsegmentsize.c src/regionident.c \
+ src/regionreturnsegment.c src/regiongetinfo.c
+
+PARTITION_C_FILES = src/part.c src/partcreate.c src/partdelete.c src/partgetbuffer.c \
+ src/partident.c src/partreturnbuffer.c
+
+DPMEM_C_FILES = src/dpmem.c src/dpmemcreate.c src/dpmemdelete.c src/dpmemexternal2internal.c \
+ src/dpmemident.c src/dpmeminternal2external.c
+
+STD_C_FILES = src/attr.c $(TASK_C_FILES) $(RATEMON_C_FILES) $(INTR_C_FILES) \
+ $(CLOCK_C_FILES) $(TIMER_C_FILES) $(SEMAPHORE_C_FILES) \
+ $(MESSAGE_QUEUE_C_FILES) $(EVENT_C_FILES) $(SIGNAL_C_FILES) \
+ $(PARTITION_C_FILES) $(REGION_C_FILES) $(DPMEM_C_FILES)
+
+if HAS_MP
+C_FILES = $(STD_C_FILES) $(MP_C_FILES)
+else
+C_FILES = $(STD_C_FILES)
+endif
+
+OBJS = $(C_FILES:src/%.c=${ARCH}/%.$(OBJEXT))
+
+#
+# Add local stuff here using +=
+#
+
+AM_CPPFLAGS += -D__RTEMS_INSIDE__
+
+all-local: ${ARCH} $(PREINSTALL_FILES) $(LIB)
+
+${ARCH}/%.o: src/%.c
+ test -d $(ARCH) || mkdir $(ARCH)
+ ${COMPILE} -o $@ -c $<
+
+$(LIB): ${OBJS}
+ $(make-library)
+
+EXTRA_DIST = $(STD_C_FILES) $(MP_C_FILES)
-include $(top_srcdir)/automake/subdirs.am
include $(top_srcdir)/automake/local.am