1 | ## |
---|
2 | ## $Id$ |
---|
3 | ## |
---|
4 | |
---|
5 | include $(top_srcdir)/automake/multilib.am |
---|
6 | include $(top_srcdir)/automake/compile.am |
---|
7 | include $(top_srcdir)/automake/lib.am |
---|
8 | |
---|
9 | SUBDIRS = . cpu |
---|
10 | |
---|
11 | $(PROJECT_INCLUDE): |
---|
12 | @$(mkinstalldirs) $@ |
---|
13 | $(PROJECT_INCLUDE)/rtems: |
---|
14 | @$(mkinstalldirs) $@ |
---|
15 | $(PROJECT_INCLUDE)/rtems/score: |
---|
16 | @$(mkinstalldirs) $@ |
---|
17 | |
---|
18 | $(PROJECT_INCLUDE)/%.h: include/%.h |
---|
19 | $(INSTALL_DATA) $< $@ |
---|
20 | $(PROJECT_INCLUDE)/%.inl: $(INLINEdir)/%.inl |
---|
21 | $(INSTALL_DATA) $< $@ |
---|
22 | |
---|
23 | PREINSTALL_FILES = $(PROJECT_INCLUDE) |
---|
24 | ## include |
---|
25 | |
---|
26 | include_rtemsdir = $(includedir)/rtems |
---|
27 | PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems |
---|
28 | |
---|
29 | include_rtems_HEADERS = include/rtems/debug.h include/rtems/system.h \ |
---|
30 | include/rtems/seterr.h |
---|
31 | |
---|
32 | PREINSTALL_FILES += $(include_rtems_HEADERS:include/%=$(PROJECT_INCLUDE)/%) |
---|
33 | |
---|
34 | include_rtems_scoredir = $(includedir)/rtems/score |
---|
35 | PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score |
---|
36 | |
---|
37 | # We only build multiprocessing related files if HAS_MP was defined |
---|
38 | MP_H_FILES = include/rtems/score/mpci.h include/rtems/score/mppkt.h \ |
---|
39 | include/rtems/score/objectmp.h include/rtems/score/threadmp.h |
---|
40 | |
---|
41 | # H_FILES that get installed in the rtems/score subdirectoy |
---|
42 | STD_H_FILES = include/rtems/score/address.h include/rtems/score/apiext.h \ |
---|
43 | include/rtems/score/apimutex.h \ |
---|
44 | include/rtems/score/bitfield.h include/rtems/score/chain.h include/rtems/score/context.h \ |
---|
45 | include/rtems/score/copyrt.h include/rtems/score/coremsg.h include/rtems/score/coremutex.h \ |
---|
46 | include/rtems/score/coresem.h include/rtems/score/heap.h include/rtems/score/interr.h \ |
---|
47 | include/rtems/score/isr.h include/rtems/score/object.h include/rtems/score/priority.h \ |
---|
48 | include/rtems/score/stack.h include/rtems/score/states.h include/rtems/score/sysstate.h \ |
---|
49 | include/rtems/score/thread.h include/rtems/score/threadq.h include/rtems/score/tod.h \ |
---|
50 | include/rtems/score/tqdata.h include/rtems/score/userext.h include/rtems/score/watchdog.h \ |
---|
51 | include/rtems/score/wkspace.h include/rtems/score/cpuopts.h |
---|
52 | include_rtems_score_HEADERS = $(STD_H_FILES) |
---|
53 | PREINSTALL_FILES += $(STD_H_FILES:include/%.h=$(PROJECT_INCLUDE)/%.h) |
---|
54 | |
---|
55 | if HAS_MP |
---|
56 | include_rtems_score_HEADERS += $(MP_H_FILES) |
---|
57 | PREINSTALL_FILES += $(MP_H_FILES:include/%.h=$(PROJECT_INCLUDE)/%.h) |
---|
58 | endif |
---|
59 | |
---|
60 | ## inline |
---|
61 | |
---|
62 | ## We only build multiprocessing related files if HAS_MP was defined |
---|
63 | MP_I_FILES = inline/rtems/score/mppkt.inl inline/rtems/score/objectmp.inl inline/rtems/score/threadmp.inl |
---|
64 | if INLINE |
---|
65 | if HAS_MP |
---|
66 | include_rtems_score_HEADERS += $(STD_I_FILES) |
---|
67 | PREINSTALL_FILES += $(MP_I_FILES:inline/%.inl=$(PROJECT_INCLUDE)/%.inl) |
---|
68 | endif |
---|
69 | endif |
---|
70 | |
---|
71 | STD_I_FILES = inline/rtems/score/address.inl inline/rtems/score/chain.inl \ |
---|
72 | inline/rtems/score/coremsg.inl inline/rtems/score/coremutex.inl inline/rtems/score/coresem.inl \ |
---|
73 | inline/rtems/score/heap.inl inline/rtems/score/isr.inl inline/rtems/score/object.inl \ |
---|
74 | inline/rtems/score/priority.inl inline/rtems/score/stack.inl inline/rtems/score/states.inl \ |
---|
75 | inline/rtems/score/sysstate.inl inline/rtems/score/thread.inl inline/rtems/score/tod.inl \ |
---|
76 | inline/rtems/score/tqdata.inl inline/rtems/score/userext.inl inline/rtems/score/watchdog.inl \ |
---|
77 | inline/rtems/score/wkspace.inl |
---|
78 | if INLINE |
---|
79 | include_rtems_score_HEADERS += $(STD_I_FILES) |
---|
80 | PREINSTALL_FILES += $(STD_I_FILES:inline/%.inl=$(PROJECT_INCLUDE)/%.inl) |
---|
81 | endif |
---|
82 | |
---|
83 | EXTRA_DIST = $(STD_I_FILES) $(MP_I_FILES) |
---|
84 | |
---|
85 | ## macros |
---|
86 | |
---|
87 | ## We only build multiprocessing related files if HAS_MP was defined |
---|
88 | MP_M_FILES = macros/rtems/score/mppkt.inl macros/rtems/score/objectmp.inl macros/rtems/score/threadmp.inl |
---|
89 | if MACROS |
---|
90 | if HAS_MP |
---|
91 | include_rtems_score_HEADERS += $(MP_M_FILES) |
---|
92 | PREINSTALL_FILES += $(MP_M_FILES:macros/%.inl=$(PROJECT_INCLUDE)/%.inl) |
---|
93 | endif |
---|
94 | endif |
---|
95 | |
---|
96 | STD_M_FILES = macros/rtems/score/address.inl macros/rtems/score/chain.inl \ |
---|
97 | macros/rtems/score/coremsg.inl macros/rtems/score/coremutex.inl macros/rtems/score/coresem.inl \ |
---|
98 | macros/rtems/score/heap.inl macros/rtems/score/isr.inl macros/rtems/score/object.inl \ |
---|
99 | macros/rtems/score/priority.inl macros/rtems/score/stack.inl macros/rtems/score/states.inl \ |
---|
100 | macros/rtems/score/sysstate.inl macros/rtems/score/thread.inl macros/rtems/score/tod.inl \ |
---|
101 | macros/rtems/score/tqdata.inl macros/rtems/score/userext.inl macros/rtems/score/watchdog.inl \ |
---|
102 | macros/rtems/score/wkspace.inl |
---|
103 | if MACROS |
---|
104 | include_rtems_score_HEADERS += $(STD_M_FILES) |
---|
105 | PREINSTALL_FILES += $(STD_M_FILES:macros/%.inl=$(PROJECT_INCLUDE)/%.inl) |
---|
106 | endif |
---|
107 | |
---|
108 | EXTRA_DIST += $(STD_M_FILES) $(MP_M_FILES) macros/README |
---|
109 | |
---|
110 | ## src |
---|
111 | |
---|
112 | LIB=$(ARCH)/libscore.a |
---|
113 | |
---|
114 | # We only build multiprocessing related files if HAS_MP was defined |
---|
115 | MP_C_FILES = src/mpci.c src/objectmp.c src/threadmp.c |
---|
116 | |
---|
117 | CORE_MESSAGE_QUEUE_C_FILES = src/coremsg.c src/coremsgbroadcast.c src/coremsgclose.c \ |
---|
118 | src/coremsgflush.c src/coremsgflushwait.c src/coremsginsert.c src/coremsgflushsupp.c \ |
---|
119 | src/coremsgseize.c src/coremsgsubmit.c |
---|
120 | |
---|
121 | CORE_MUTEX_C_FILES = src/coremutex.c src/coremutexflush.c src/coremutexseize.c \ |
---|
122 | src/coremutexsurrender.c |
---|
123 | |
---|
124 | CORE_SEMAPHORE_C_FILES = src/coresem.c src/coresemflush.c src/coresemseize.c \ |
---|
125 | src/coresemsurrender.c |
---|
126 | |
---|
127 | HEAP_C_FILES = src/heap.c src/heapallocate.c src/heapextend.c src/heapfree.c \ |
---|
128 | src/heapsizeofuserarea.c src/heapwalk.c src/heapgetinfo.c |
---|
129 | |
---|
130 | OBJECT_C_FILES = src/object.c src/objectallocate.c src/objectallocatebyindex.c \ |
---|
131 | src/objectclearname.c src/objectcomparenameraw.c src/objectcomparenamestring.c \ |
---|
132 | src/objectcopynameraw.c src/objectcopynamestring.c src/objectextendinformation.c \ |
---|
133 | src/objectfree.c src/objectget.c src/objectgetisr.c src/objectgetbyindex.c \ |
---|
134 | src/objectgetnext.c src/objectinitializeinformation.c src/objectnametoid.c \ |
---|
135 | src/objectshrinkinformation.c src/objectgetnoprotection.c \ |
---|
136 | src/objectidtoname.c |
---|
137 | |
---|
138 | THREAD_C_FILES = src/thread.c src/threadchangepriority.c src/threadclearstate.c \ |
---|
139 | src/threadclose.c src/threadcreateidle.c src/threaddelayended.c src/threaddispatch.c \ |
---|
140 | src/threadevaluatemode.c src/threadget.c src/threadhandler.c src/threadidlebody.c \ |
---|
141 | src/threadinitialize.c src/threadloadenv.c src/threadready.c src/threadresettimeslice.c \ |
---|
142 | src/threadreset.c src/threadrestart.c src/threadresume.c src/threadrotatequeue.c \ |
---|
143 | src/threadsetpriority.c src/threadsetstate.c src/threadsettransient.c \ |
---|
144 | src/threadstackallocate.c src/threadstackfree.c src/threadstart.c \ |
---|
145 | src/threadstartmultitasking.c src/threadsuspend.c src/threadtickletimeslice.c \ |
---|
146 | src/threadyieldprocessor.c src/iterateoverthreads.c |
---|
147 | |
---|
148 | THREADQ_C_FILES = src/threadq.c src/threadqdequeue.c src/threadqdequeuefifo.c \ |
---|
149 | src/threadqdequeuepriority.c src/threadqenqueue.c src/threadqenqueuefifo.c \ |
---|
150 | src/threadqenqueuepriority.c src/threadqextract.c src/threadqextractfifo.c \ |
---|
151 | src/threadqextractpriority.c src/threadqextractwithproxy.c src/threadqfirst.c \ |
---|
152 | src/threadqfirstfifo.c src/threadqfirstpriority.c src/threadqflush.c src/threadqtimeout.c |
---|
153 | |
---|
154 | TOD_C_FILES = src/coretod.c src/coretodset.c src/coretodtickle.c src/coretodtoseconds.c \ |
---|
155 | src/coretodvalidate.c |
---|
156 | |
---|
157 | WATCHDOG_C_FILES = src/watchdog.c src/watchdogadjust.c src/watchdoginsert.c \ |
---|
158 | src/watchdogremove.c src/watchdogtickle.c |
---|
159 | |
---|
160 | STD_C_FILES = src/apiext.c src/chain.c $(CORE_MESSAGE_QUEUE_C_FILES) \ |
---|
161 | $(CORE_MUTEX_C_FILES) $(CORE_SEMAPHORE_C_FILES) $(HEAP_C_FILES) src/interr.c \ |
---|
162 | src/isr.c $(OBJECT_C_FILES) $(THREAD_C_FILES) $(THREADQ_C_FILES) \ |
---|
163 | $(TOD_C_FILES) src/userext.c $(WATCHDOG_C_FILES) src/wkspace.c |
---|
164 | |
---|
165 | C_FILES = $(STD_C_FILES) |
---|
166 | if HAS_MP |
---|
167 | C_FILES += $(MP_C_FILES) |
---|
168 | endif |
---|
169 | OBJS = $(C_FILES:src/%.c=${ARCH}/%.$(OBJEXT)) |
---|
170 | |
---|
171 | # |
---|
172 | # Add local stuff here using += |
---|
173 | # |
---|
174 | |
---|
175 | AM_CPPFLAGS += -D__RTEMS_INSIDE__ |
---|
176 | |
---|
177 | $(LIB): ${OBJS} |
---|
178 | $(make-library) |
---|
179 | |
---|
180 | ${ARCH}/%.$(OBJEXT): src/%.c |
---|
181 | ${COMPILE} -o $@ -c $< |
---|
182 | |
---|
183 | EXTRA_DIST += $(STD_C_FILES) $(MP_C_FILES) src/Unlimited.txt |
---|
184 | |
---|
185 | all-local: $(PREINSTALL_FILES) ${ARCH} $(LIB) |
---|
186 | |
---|
187 | include $(top_srcdir)/automake/subdirs.am |
---|
188 | include $(top_srcdir)/automake/local.am |
---|