1 # Delete the default suffix rules
3 .PHONY
: default userspace modules
clean modclean depclean
install python pythonclean
5 # A "trivial build" is one which should not include dependency information
6 # either because it should be usable before dependency information can be
7 # generated or when it is invalid (clean, docclean) or when running as root
8 # when the user must guarantee in advance that everything is built
10 ifeq ($(MAKECMDGOALS
),)
13 ifeq ($(filter-out docclean
clean setuid
install tags swish
,$(MAKECMDGOALS
)),)
20 ifeq "$(findstring s,$(MAKEFLAGS))" ""
29 BASEPWD
:= $(shell pwd
)
32 ifeq ($(origin PYTHONPATH
),undefined
)
33 PYTHONPATH
:=$(EMC2_HOME
)/lib
/python
35 PYTHONPATH
:=$(EMC2_HOME
)/lib
/python
:$(PYTHONPATH
)
39 include $(BASEPWD
)/Makefile.inc
42 $(error Makefile.inc must specify RTPREFIX and other variables
)
45 DEP
= $(1) -MM
-MG
-MT
"$(2)" $(4) -o
$(3).tmp
&& mv
-f
"$(3)".tmp
"$(3)"
47 cc-option
= $(shell if
$(CC
) $(CFLAGS
) $(1) -S
-o
/dev
/null
-xc
/dev
/null \
48 > /dev
/null
2>&1; then echo
"$(1)"; else echo
"$(2)"; fi
;)
50 ifeq ($(KERNELRELEASE
),)
51 # When KERNELRELEASE is not defined, this is the userspace build.
52 # The "modules" target is the gateway to the kernel module build.
53 default
: configs userspace modules
54 ifeq ($(RUN_IN_PLACE
),yes
)
55 ifneq ($(BUILD_SYS
),sim
)
56 @if
[ -f ..
/bin
/emc_module_helper
]; then if
! [ `stat -c %u ../bin/emc_module_helper` -eq
0 -a
-u ..
/bin
/emc_module_helper
]; then
$(VECHO
) "You now need to run 'sudo make setuid' in order to run in place."; fi
; fi
61 # list of supported hostmot2 boards
62 HM2_BOARDS
= 3x20
4i65
4i68
5i20
5i22
5i23
7i43
64 # Print 'entering' all the time
67 # Create the variables with := so that subsequent += alterations keep it
68 # as a "substitute at assignment time" variable
72 # Submakefiles from each of these directories will be included if they exist
74 libnml
/linklist libnml
/cms libnml
/rcs libnml
/inifile libnml
/os_intf \
75 libnml
/nml libnml
/buffer libnml
/posemath libnml \
77 rtapi
/examples
/timer rtapi
/examples
/semaphore rtapi
/examples
/shmem \
78 rtapi
/examples
/extint rtapi
/examples
/fifo rtapi
/examples rtapi \
80 hal
/components hal
/drivers hal
/user_comps
/devices \
81 hal
/user_comps hal
/user_comps
/vismach hal
/classicladder hal
/utils hal \
83 emc
/usr_intf
/axis emc
/usr_intf
/touchy emc
/usr_intf
/stepconf emc
/usr_intf
/pncconf \
84 emc
/usr_intf emc
/nml_intf emc
/task emc
/iotask emc
/kinematics emc
/canterp \
85 emc
/motion emc
/ini emc
/rs274ngc emc
/sai emc \
93 ULAPISRCS
:= rtapi
/$(RTPREFIX
)_ulapi.c
95 # Each item in INCLUDES is transformed into a -I directive later on
96 # The top directory is always included
102 # When used like $(call TOxxx, ...) these turn a list of source files
103 # into the corresponding list of object files, dependency files,
104 # or both. When a source file has to be compiled with special flags,
105 # TOOBJSDEPS is used. See Submakefile.skel for an example.
106 TOOBJS
= $(patsubst %.
cc,objects
/%.o
,$(patsubst %.c
,objects
/%.o
,$(1)))
107 TODEPS
= $(patsubst %.
cc,depends
/%.d
,$(patsubst %.c
,depends
/%.d
,$(1)))
108 TOOBJSDEPS
= $(call TOOBJS
,$(1)) $(call TODEPS
,$(1) $(patsubst %.
cc,%.i
,$(patsubst %.c
,%.i
,$(1))))
110 SUBMAKEFILES
:= $(patsubst %,%/Submakefile
,$(SUBDIRS
))
111 -include $(wildcard $(SUBMAKEFILES
))
113 # This checks that all the things listed in USERSRCS are either C files
115 ASSERT_EMPTY
= $(if
$(1), $(error
"Should be empty but is not: $(1)"))
116 $(call ASSERT_EMPTY
,$(filter-out %.c
%.
cc, $(USERSRCS
)))
117 $(call ASSERT_EMPTY
,$(filter-out %.c
, $(RTSRCS
)))
119 ifeq ($(BUILD_PYTHON
),yes
)
120 $(call TOOBJSDEPS
,$(PYSRCS
)) : EXTRAFLAGS
+= -fPIC
121 USERSRCS
+= $(PYSRCS
)
124 # Find the list of object files for each type of source file
125 CUSERSRCS
:= $(filter %.c
,$(USERSRCS
))
126 CXXUSERSRCS
:= $(filter %.
cc,$(USERSRCS
))
127 CUSEROBJS
:= $(call TOOBJS
,$(CUSERSRCS
))
128 CXXUSEROBJS
+= $(call TOOBJS
,$(CXXUSERSRCS
))
130 ifeq ($(TRIVIAL_BUILD
),no
)
131 # Find the dependency filenames, then include them all
132 DEPS
:= $(sort $(patsubst objects
/%.o
,depends
/%.d
,$(CUSEROBJS
) $(CXXUSEROBJS
)))
137 # Each directory in $(INCLUDES) is passed as a -I directory when compiling.
138 INCLUDE
:= $(patsubst %,-I
%, $(INCLUDES
)) -I
$(RTDIR
)/include
140 ifneq ($(KERNELDIR
),)
141 INCLUDE
+= -I
$(KERNELDIR
)/include
144 ifeq ($(BUILD_PYTHON
),yes
)
145 INCLUDE
+= -I
$(INCLUDEPY
)
148 # Compilation options. Perhaps some of these should come from Makefile.inc?
149 OPT
:= -O2
$(call cc-option
,-fno-strict-aliasing
) $(call cc-option
,-fno-stack-protector
)
150 # NOTE: Wwrite-strings is supposed to be OFF unless explicitly requested, even with -Wall,
151 # since it produces a mess of warnings on any code that doesn't use "const" fastidiously
152 # There is a bug in some versions of gcc that turns it on.
153 # ( see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=442950 )
154 # So we explicitly turn it off here, to avoid a flood of meaningless warnings that
155 # might be hiding a few real ones.
156 DEBUG
:= -g
-Wall
$(call cc-option
,-Wno-write-strings
)
157 CFLAGS
:= $(INCLUDE
) -O0
$(DEBUG
) -DULAPI
$(call cc-option
, -Wdeclaration-after-statement
) $(BITOPS_DEFINE
)
158 CXXFLAGS
:= $(INCLUDE
) -O0
$(DEBUG
) -DULAPI
$(BITOPS_DEFINE
)
160 ifeq ($(RUN_IN_PLACE
),yes
)
161 LDFLAGS
:= -L
$(LIB_DIR
) -Wl
,-rpath
,$(LIB_DIR
)
163 LDFLAGS
:= -L
$(LIB_DIR
) -Wl
,-rpath
,$(libdir)
166 # Rules to make .d (dependency) files.
167 $(sort $(call TODEPS
, $(filter %.
cc,$(USERSRCS
)))): depends
/%.d
: %.
cc
170 @
$(call DEP
,$(CXX
),$@
$(patsubst depends
/%.d
,objects
/%.o
,$@
),$@
,$(CXXFLAGS
) $(EXTRAFLAGS
) $<)
172 $(sort $(call TODEPS
, $(filter %.c
,$(USERSRCS
)))): depends
/%.d
: %.c
175 @
$(call DEP
,$(CC
),$@
$(patsubst depends
/%.d
,objects
/%.o
,$@
),$@
,$(CFLAGS
) $(EXTRAFLAGS
) $<)
177 # Rules to make .o (object) files
178 $(sort $(CUSEROBJS
)) : objects
/%.o
: %.c
181 @
$(CC
) -c
$(CFLAGS
) $(EXTRAFLAGS
) $< -o
$@
183 $(sort $(CXXUSEROBJS
)) : objects
/%.o
: %.
cc
186 @
$(CXX
) -c
$(CXXFLAGS
) $(EXTRAFLAGS
) $< -o
$@
188 # Rules to make .i (preprocessed) files
189 $(sort $(patsubst %.c
,%.i
,$(CUSERSRCS
))): %.i
: %.c
190 @echo Preprocessing
$< to
$@
191 @
$(CC
) -dD
$(CFLAGS
) $(EXTRAFLAGS
) -E
$< -o
$@
193 $(sort $(patsubst %.
cc,%.ii
,$(CXXUSERSRCS
))): %.ii
: %.
cc
194 @echo Preprocessing
$< to
$@
195 @
$(CXX
) -dD
$(CXXFLAGS
) $(EXTRAFLAGS
) -E
$< -o
$@
197 ifeq ($(TRIVIAL_BUILD
),no
)
198 configure
: configure.in
199 AUTOGEN_TARGET
=configure .
/autogen.sh
201 config.h.in
: configure.in
202 AUTOGEN_TARGET
=config.h.in .
/autogen.sh
204 config.status
: configure
205 if
[ -f config.status
]; then .
/config.status
--recheck
; else \
206 echo
1>&2 "*** emc2 is not configured. Run './configure' with appropriate flags."; \
211 config.h
: config.h.in config.status
212 @.
/config.status
-q
--header
=$@
215 ..
/docs
/man
/man1
/emc
.1 ..
/scripts
/emc ..
/scripts
/realtime \
216 ..
/scripts
/haltcl ..
/scripts
/rtapi.conf Makefile.inc Makefile.modinc \
217 ..
/tcl
/emc.tcl ..
/scripts
/halrun ..
/scripts
/emc-environment \
218 ..
/scripts
/emcmkdesktop ..
/lib
/python
/nf.py \
219 ..
/share
/desktop-directories
/cnc.directory ..
/share
/menus
/CNC.menu \
220 ..
/share
/applications
/emc.desktop \
221 ..
/share
/applications
/emc-latency.desktop
223 $(INFILES
): %: %.in config.status
224 @.
/config.status
--file
=$@
228 # For each file to be copied to ../include, its location in the source tree
229 # is listed here. Note that due to $(INCLUDE), defined above, the include
230 # files in the source tree are the ones used when building emc2. The copy
231 # in ../include is used when building external components of emc2.
234 emc
/ini
/emcIniFile.hh \
238 emc
/kinematics
/cubic.h \
239 emc
/kinematics
/kinematics.h \
240 emc
/kinematics
/genhexkins.h \
241 emc
/kinematics
/genserkins.h \
242 emc
/kinematics
/pumakins.h \
243 emc
/kinematics
/tc.h \
244 emc
/kinematics
/tp.h \
245 emc
/motion
/emcmotcfg.h \
246 emc
/motion
/emcmotglb.h \
247 emc
/motion
/motion.h \
248 emc
/motion
/usrmotintf.h \
249 emc
/nml_intf
/canon.hh \
250 emc
/nml_intf
/emctool.h \
251 emc
/nml_intf
/emc.hh \
252 emc
/nml_intf
/emc_nml.hh \
253 emc
/nml_intf
/emccfg.h \
254 emc
/nml_intf
/emcglb.h \
255 emc
/nml_intf
/emcpos.h \
256 emc
/nml_intf
/interp.hh \
257 emc
/nml_intf
/interp_return.hh \
258 emc
/nml_intf
/interpl.hh \
259 emc
/nml_intf
/motion_types.h \
260 emc
/rs274ngc
/interp_internal.hh \
261 emc
/rs274ngc
/rs274ngc.hh \
263 libnml
/buffer
/locmem.hh \
264 libnml
/buffer
/memsem.hh \
265 libnml
/buffer
/phantom.hh \
266 libnml
/buffer
/physmem.hh \
267 libnml
/buffer
/recvn.h \
268 libnml
/buffer
/rem_msg.hh \
269 libnml
/buffer
/sendn.h \
270 libnml
/buffer
/shmem.hh \
271 libnml
/buffer
/tcpmem.hh \
273 libnml
/cms
/cms_aup.hh \
274 libnml
/cms
/cms_cfg.hh \
275 libnml
/cms
/cms_dup.hh \
276 libnml
/cms
/cms_srv.hh \
277 libnml
/cms
/cms_up.hh \
278 libnml
/cms
/cms_user.hh \
279 libnml
/cms
/cms_xup.hh \
280 libnml
/cms
/cmsdiag.hh \
281 libnml
/cms
/tcp_opts.hh \
282 libnml
/cms
/tcp_srv.hh \
283 libnml
/inifile
/inifile.hh \
284 libnml
/linklist
/linklist.hh \
285 libnml
/nml
/cmd_msg.hh \
287 libnml
/nml
/nml_mod.hh \
288 libnml
/nml
/nml_oi.hh \
289 libnml
/nml
/nml_srv.hh \
290 libnml
/nml
/nml_type.hh \
291 libnml
/nml
/nmldiag.hh \
292 libnml
/nml
/nmlmsg.hh \
293 libnml
/nml
/stat_msg.hh \
294 libnml
/os_intf
/_sem.h \
295 libnml
/os_intf
/sem.hh \
296 libnml
/os_intf
/_shm.h \
297 libnml
/os_intf
/shm.hh \
298 libnml
/os_intf
/_timer.h \
299 libnml
/os_intf
/timer.hh \
300 libnml
/posemath
/posemath.h \
301 libnml
/posemath
/gotypes.h \
302 libnml
/posemath
/gomath.h \
303 libnml
/posemath
/sincos.h \
305 libnml
/rcs
/rcs_exit.hh \
306 libnml
/rcs
/rcs_print.hh \
307 libnml
/rcs
/rcsversion.h \
310 rtapi
/rtapi_bitops.h \
312 rtapi
/rtapi_math_i386.h \
313 rtapi
/rtapi_common.h \
314 rtapi
/rtapi_ctype.h \
315 rtapi
/rtapi_errno.h \
318 # Make each include file a target
319 TARGETS
+= $(patsubst %,..
/include/%,$(foreach h
,$(HEADERS
),$(notdir $h)))
321 # Add converting of %.po files
322 TARGETS
+= $(patsubst po
/%.po
, ..
/share
/locale
/%/LC_MESSAGES
/emc2.mo
, $(wildcard po
/*.po
))
323 TARGETS
+= $(patsubst po
/%.po
, objects
/%.msg
, $(wildcard po
/*.po
))
325 # And make userspace depend on $(TARGETS)
326 userspace
: $(TARGETS
)
328 ifeq ($(BUILD_PYTHON
),yes
)
333 clean: docclean pythonclean
336 # This is the gateway into the crazy world of "kbuild", the linux 2.6 system
337 # for building kernel modules. Other kernel module build styles need to be
339 ifeq ($(BUILD_SYS
),kbuild
)
341 # '-o $(KERNELDIR)/Module.symvers' silences warnings about that file being missing
343 .
/modsilent
$(MAKE
) -C
$(KERNELDIR
) SUBDIRS
=`pwd` CC
=$(CC
) V
=0 -o
$(KERNELDIR
)/Module.symvers modules
344 -cp
*$(MODULE_EXT
) ..
/rtlib
/
347 # These rules clean things up. 'modclean' cleans files generated by 'modules'
348 # (except that it doesn't remove the modules that were copied to rtlib)
349 # 'clean' cleans everything but dependency files, and 'depclean' cleans them
352 find
-name
'.*.cmd' -or
-name
'*.ko' -or
-name
'*.mod.c' -or
-name
'*.mod.o' | xargs
rm -f
353 -rm -rf .tmp_versions
354 find .
-name .tmp_versions |xargs
rm -rf
361 clean: depclean modclean
362 find .
-name
'*.o' |xargs
rm -f
365 -rm -f
$(COPY_CONFIGS
)
366 -rm -f ..
/rtlib
/*.
$(MODULE_EXT
)
367 -rm -f hal
/components
/conv_
*.comp
369 # So that nothing is built as root, this rule does not depend on the touched
370 # files (Note that files in depends/ might be rebuilt, and there's little that
371 # can be done about it)
372 ifeq ($(BUILD_SYS
),sim
)
374 @echo
"'make setuid' is not needed for the simulator"
377 chown root ..
/bin
/emc_module_helper
378 chmod
4750 ..
/bin
/emc_module_helper
379 chown root ..
/bin
/bfload
380 chmod
4750 ..
/bin
/bfload
381 chown root ..
/bin
/pci_write
382 chmod
4750 ..
/bin
/pci_write
383 chown root ..
/bin
/pci_read
384 chmod
4750 ..
/bin
/pci_read
387 # These rules allows a header file from this directory to be installed into
388 # ../include. A pair of rules like these will exist in the Submakefile
389 # of each file that contains headers.
392 ..
/include/%.hh
: %.hh
395 DIR
=install -d
-m
0755 -o root
396 FILE
=install -m
0644 -o root
398 CONFIGFILE
=install -m
0644
399 EXE
=install -m
0755 -o root
400 SETUID
=install -m
4755 -o root
401 GLOB
=$(wildcard $(1))
403 ifeq ($(RUN_IN_PLACE
),yes
)
405 You configured run-in-place
, but are trying to
install.
406 For an installable version
, run configure without
--enable-run-in-place
410 $(error
$(ERROR_MESSAGE
))
411 install-menus install-menu
: ..
/share
/menus
/CNC.menu \
412 ..
/share
/desktop-directories
/cnc.directory \
413 ..
/share
/applications
/emc.desktop \
414 ..
/share
/applications
/emc-latency.desktop
415 mkdir
-p
$(HOME
)/.config
/menus
/applications-merged
416 cp
$< $(HOME
)/.config
/menus
/applications-merged
419 DOCS
=NEWS README AUTHORS
421 DOCS_HELP
=$(call GLOB
,..
/docs
/help
/*)
422 NC_FILES
=$(filter-out %/butterfly.ngc
,$(call GLOB
,..
/nc_files
/*))
423 TCL
=$(call GLOB
,..
/tcl
/*.tcl
)
424 TCL_BIN
=$(call GLOB
,..
/tcl
/bin
/*.tcl
) ..
/tcl
/bin
/popimage
427 @if type
-path dpkg-query
> /dev
/null
2>&1 ; then \
428 if dpkg-query
-S
$(DESTDIR
)/usr
/bin
/emc
> /dev
/null
2>&1 ; then \
429 echo
"*** Error: Package version installed in $(DESTDIR)/usr"; \
430 echo
"Use './configure --enable-run-in-place' or uninstall the emc2 package"; \
431 echo
"before installing."; \
436 install: install-test install-kernel-dep install-kernel-indep
437 $(ECHO
) "Installed in $(DESTDIR) with prefix $(prefix)"
440 $(DIR
) $(DESTDIR
)$(initd_dir
) $(DESTDIR
)$(EMC2_RTLIB_DIR
) \
441 $(DESTDIR
)$(sysconfdir
)/emc2
$(DESTDIR
)$(bindir) \
442 $(DESTDIR
)$(libdir) $(DESTDIR
)$(includedir)/emc2 \
443 $(DESTDIR
)$(docsdir
) $(DESTDIR
)$(ncfilesdir
) \
444 $(DESTDIR
)/etc
/X11
/app-defaults
$(DESTDIR
)$(tcldir
)/bin \
445 $(DESTDIR
)$(tcldir
)/scripts
$(DESTDIR
)$(libdir)/emc
/tcl \
446 $(DESTDIR
)$(mandir)/man1 \
447 $(DESTDIR
)$(mandir)/man3 \
448 $(DESTDIR
)$(mandir)/man9 \
449 $(DESTDIR
)$(tcldir
)/msgs \
450 $(DESTDIR
)$(localedir
)/de
/LC_MESSAGES \
451 $(DESTDIR
)$(datadir)/axis
/images \
452 $(DESTDIR
)$(datadir)/axis
/tcl \
453 $(DESTDIR
)$(datadir)/emc
/pncconf
/pncconf-help
455 install-kernel-indep
: install-dirs
456 $(FILE
) ..
/docs
/man
/man1
/*.1 $(DESTDIR
)$(mandir)/man1
457 $(FILE
) $(filter-out %/skeleton
.3hal
, $(wildcard ..
/docs
/man
/man3
/*.3hal
)) $(DESTDIR
)$(mandir)/man3
458 $(FILE
) $(filter-out %/skeleton
.3rtapi
, $(wildcard ..
/docs
/man
/man3
/*.3rtapi
)) $(DESTDIR
)$(mandir)/man3
459 $(FILE
) $(filter-out %/skeleton
.9, $(wildcard ..
/docs
/man
/man9
/*.9)) $(DESTDIR
)$(mandir)/man9
460 $(FILE
) objects
/*.msg
$(DESTDIR
)$(tcldir
)/msgs
461 $(EXE
) ..
/scripts
/realtime
$(DESTDIR
)$(initd_dir
)
462 $(EXE
) ..
/scripts
/halrun
$(DESTDIR
)$(bindir)
463 $(FILE
) ..
/docs
/UPDATING
$(DESTDIR
)$(docsdir
)/UPDATING
464 $(FILE
) ..
/*.png ..
/*.gif
$(DESTDIR
)$(datadir)/emc
466 # install all the sample configs, including subdirs (tar is required on debian systems, and common on others)
467 $(DIR
) $(DESTDIR
)$(sampleconfsdir
)
468 ((cd ..
/configs
&& tar --exclude CVS
--exclude .cvsignore
-cf
- .
) |
(cd
$(DESTDIR
)$(sampleconfsdir
) && tar -xf
-))
470 $(EXE
) $(filter-out ..
/bin
/emc_module_helper ..
/bin
/bfload ..
/bin
/pci_write ..
/bin
/pci_read
, $(filter ..
/bin
/%,$(TARGETS
))) $(DESTDIR
)$(bindir)
471 $(EXE
) ..
/scripts
/emc
$(DESTDIR
)$(bindir)
472 $(EXE
) ..
/scripts
/latency-test
$(DESTDIR
)$(bindir)
473 $(EXE
) ..
/scripts
/emcmkdesktop
$(DESTDIR
)$(bindir)
474 $(EXE
) ..
/bin
/tooledit
$(DESTDIR
)$(bindir)
475 $(EXE
) ..
/bin
/toolconvert
$(DESTDIR
)$(bindir)
476 $(FILE
) $(filter ..
/lib
/%.a ..
/lib
/%.so
.0,$(TARGETS
)) $(DESTDIR
)$(libdir)
477 cp
--no-dereference
$(filter ..
/lib
/%.so
, $(TARGETS
)) $(DESTDIR
)$(libdir)
478 -ldconfig
$(DESTDIR
)$(libdir)
479 $(FILE
) $(filter %.h
%.hh
,$(TARGETS
)) $(DESTDIR
)$(includedir)/emc2
/
480 $(FILE
) $(addprefix ..
/docs
/,$(DOCS
)) $(DESTDIR
)$(docsdir
)
481 $(FILE
) $(DOCS_HELP
) $(DESTDIR
)$(docsdir
)
482 $(FILE
) $(NC_FILES
) $(DESTDIR
)$(ncfilesdir
)
483 $(EXE
) ..
/nc_files
/M101
$(DESTDIR
)$(ncfilesdir
)
484 $(FILE
) ..
/tcl
/TkEmc
$(DESTDIR
)/etc
/X11
/app-defaults
485 $(FILE
) ..
/app-defaults
/XEmc
$(DESTDIR
)/etc
/X11
/app-defaults
486 $(FILE
) Makefile.modinc
$(DESTDIR
)$(datadir)/emc
487 $(EXE
) $(TCL
) $(DESTDIR
)$(tcldir
)
488 $(FILE
) ..
/tcl
/hal.so
$(DESTDIR
)$(libdir)/emc
/tcl
489 $(FILE
) ..
/tcl
/emc.so
$(DESTDIR
)$(tcldir
)
490 $(EXE
) $(TCL_BIN
) $(DESTDIR
)$(tcldir
)/bin
491 $(FILE
) ..
/tcl
/scripts
/balloon.tcl ..
/tcl
/scripts
/emchelp.tcl
$(DESTDIR
)$(tcldir
)/scripts
492 $(EXE
) ..
/tcl
/scripts
/Set_Coordinates.tcl
$(DESTDIR
)$(tcldir
)/scripts
493 $(FILE
) ..
/share
/emc
/stepconf.glade
$(DESTDIR
)$(prefix)/share
/emc
494 $(FILE
) ..
/share
/emc
/touchy.glade
$(DESTDIR
)$(prefix)/share
/emc
495 $(FILE
) ..
/share
/emc
/pncconf.glade
$(DESTDIR
)$(prefix)/share
/emc
496 $(FILE
) ..
/configs
/common
/emc.nml
$(DESTDIR
)$(prefix)/share
/emc
497 $(FILE
) ..
/src
/emc
/usr_intf
/pncconf
/pncconf-help
/*.txt
$(DESTDIR
)$(prefix)/share
/emc
/pncconf
/pncconf-help
498 $(FILE
) ..
/src
/emc
/usr_intf
/pncconf
/pncconf-help
/*.png
$(DESTDIR
)$(prefix)/share
/emc
/pncconf
/pncconf-help
500 ifeq ($(BUILD_PYTHON
),yes
)
501 install-kernel-indep
: install-python
502 install-python
: install-dirs
503 $(DIR
) $(DESTDIR
)$(SITEPY
) $(DESTDIR
)$(SITEPY
)/rs274
504 $(DIR
) $(DESTDIR
)$(SITEPY
)/touchy
505 $(FILE
) ..
/lib
/python
/*.py ..
/lib
/python
/*.so
$(DESTDIR
)$(SITEPY
)
506 $(FILE
) ..
/lib
/python
/rs274
/*.py
$(DESTDIR
)$(SITEPY
)/rs274
507 $(FILE
) ..
/lib
/python
/touchy
/*.py
$(DESTDIR
)$(SITEPY
)/touchy
508 $(EXE
) ..
/bin
/stepconf ..
/bin
/pncconf ..
/bin
/hal_input ..
/bin
/pyvcp ..
/bin
/axis ..
/bin
/axis-remote ..
/bin
/debuglevel ..
/bin
/emctop ..
/bin
/mdi ..
/bin
/hal_manualtoolchange ..
/bin
/image-to-gcode ..
/bin
/touchy
$(DESTDIR
)$(bindir)
509 $(EXE
) $(patsubst %.py
,..
/bin
/%,$(VISMACH_PY
)) $(DESTDIR
)$(bindir)
510 $(FILE
) ..
/share
/emc
/emc2-wizard.gif
$(DESTDIR
)$(prefix)/share
/emc
511 $(FILE
) emc
/usr_intf
/axis
/etc
/axis_light_background
$(DESTDIR
)$(docsdir
)
512 $(FILE
) emc
/usr_intf
/axis
/README
$(DESTDIR
)$(docsdir
)/README.axis
513 $(FILE
) ..
/share
/axis
/images
/*.gif ..
/share
/axis
/images
/*.xbm ..
/share
/axis
/images
/*.ngc
$(DESTDIR
)$(datadir)/axis
/images
514 $(FILE
) ..
/share
/axis
/tcl
/*.tcl
$(DESTDIR
)$(datadir)/axis
/tcl
518 $(DIR
) $(DESTDIR
)$(moduledir
)/emc2 \
519 $(DESTDIR
)$(bindir) \
520 $(DESTDIR
)$(sysconfdir
)/emc2
521 $(FILE
) ..
/rtlib
/*$(MODULE_EXT
) $(DESTDIR
)$(EMC2_RTLIB_DIR
)
522 ifneq "$(BUILD_SYS)" "sim"
523 $(SETUID
) ..
/bin
/emc_module_helper
$(DESTDIR
)$(bindir)
524 $(SETUID
) ..
/bin
/bfload
$(DESTDIR
)$(bindir)
525 $(SETUID
) ..
/bin
/pci_write
$(DESTDIR
)$(bindir)
526 $(SETUID
) ..
/bin
/pci_read
$(DESTDIR
)$(bindir)
528 $(FILE
) ..
/scripts
/rtapi.conf
$(DESTDIR
)$(sysconfdir
)/emc2
532 COMMON
=$(CONF
)/common
533 CONFILES
=$(addsuffix /$(1), $(filter-out $(COMMON
), $(wildcard $(CONF
)/*)))
536 $(patsubst %,..
/configs
/%/core_stepper.hal
, demo_step_cl stepper demo_sim_cl Sherline3Axis SherlineLathe cooltool
) \
537 $(patsubst %,..
/configs
/%/core_servo.hal
, motenc m5i20 stg vti
) \
538 $(patsubst %,..
/configs
/%/core_sim.hal
, halui_pyvcp sim
) \
539 $(patsubst %,..
/configs
/%/core_sim9.hal
, sim
) \
540 $(patsubst %,..
/configs
/%/axis_manualtoolchange.hal
, sim lathe-pluto
)
542 configs
: $(COPY_CONFIGS
)
544 $(call CONFILES
,axis_manualtoolchange.hal
): %/axis_manualtoolchange.hal
: ..
/configs
/common
/axis_manualtoolchange.hal
546 $(call CONFILES
,core_stepper.hal
): %/core_stepper.hal
: ..
/configs
/common
/core_stepper.hal
548 $(call CONFILES
,core_servo.hal
): %/core_servo.hal
: ..
/configs
/common
/core_servo.hal
550 $(call CONFILES
,core_sim.hal
): %/core_sim.hal
: ..
/configs
/common
/core_sim.hal
552 $(call CONFILES
,core_sim9.hal
): %/core_sim9.hal
: ..
/configs
/common
/core_sim9.hal
557 ifneq ($(KERNELRELEASE
),)
558 include $(BASEPWD
)/hal
/components
/Submakefile
561 # KERNELRELEASE is nonempty, therefore we are building modules using the
562 # "kbuild" system. $(BASEPWD) is used here, instead of relative paths, because
563 # that's what kbuild seems to require
565 EXTRA_CFLAGS
= $(RTFLAGS
) -D__MODULE__
-I
$(BASEPWD
) -I
$(BASEPWD
)/libnml
/linklist \
566 -I
$(BASEPWD
)/libnml
/cms
-I
$(BASEPWD
)/libnml
/rcs
-I
$(BASEPWD
)/libnml
/inifile \
567 -I
$(BASEPWD
)/libnml
/os_intf
-I
$(BASEPWD
)/libnml
/nml
-I
$(BASEPWD
)/libnml
/buffer \
568 -I
$(BASEPWD
)/libnml
/posemath
-I
$(BASEPWD
)/rtapi
-I
$(BASEPWD
)/hal \
569 -I
$(BASEPWD
)/emc
/nml_intf
-I
$(BASEPWD
)/emc
/kinematics
-I
$(BASEPWD
)/emc
/motion \
570 -DSEQUENTIAL_SUPPORT
-DHAL_SUPPORT
-DDYNAMIC_PLCSIZE
-DRT_SUPPORT
-DOLD_TIMERS_MONOS_SUPPORT
-DMODBUS_IO_MASTER
571 ifeq ($(RTARCH
),x86_64
)
572 EXTRA_CFLAGS
+= -msse
575 ifeq "$(USE_STUBS)" "1"
576 MATHSTUB
:= rtapi
/mathstubs.o
579 ifdef SEQUENTIAL_SUPPORT
580 EXTRA_CFLAGS
+= -DSEQUENTIAL_SUPPORT
583 # For each module, there's an addition to obj-m or obj-$(CONFIG_foo)
584 # plus a definition of foo-objs, which contains the full path to the
585 # object file(s) that the module contains. Unfortunately, this setup pollutes
586 # the source directory with object files and other temporaries, but I can't
587 # find a way around it.
589 # Subdirectory: rtapi
590 ifneq ($(BUILD_SYS
),sim
)
591 obj-
$(CONFIG_RTAPI
) += rtapi.o
592 rtapi-objs
:= rtapi
/$(RTPREFIX
)_rtapi.o
595 # Subdirectory: rtapi/examples (unneeded?)
597 # Subdirectory: hal/components
598 obj-
$(CONFIG_BOSS_PLC
) += boss_plc.o
599 boss_plc-objs
:= hal
/components
/boss_plc.o
$(MATHSTUB
)
600 obj-
$(CONFIG_DEBOUNCE
) += debounce.o
601 debounce-objs
:= hal
/components
/debounce.o
$(MATHSTUB
)
602 obj-
$(CONFIG_ENCODER
) += encoder.o
603 encoder-objs
:= hal
/components
/encoder.o
$(MATHSTUB
)
604 obj-
$(CONFIG_COUNTER
) += counter.o
605 counter-objs
:= hal
/components
/counter.o
$(MATHSTUB
)
606 obj-
$(CONFIG_ENCODER_RATIO
) += encoder_ratio.o
607 encoder_ratio-objs
:= hal
/components
/encoder_ratio.o
$(MATHSTUB
)
608 obj-
$(CONFIG_STEPGEN
) += stepgen.o
609 stepgen-objs
:= hal
/components
/stepgen.o
$(MATHSTUB
)
610 obj-
$(CONFIG_FREQGEN
) += freqgen.o
611 freqgen-objs
:= hal
/components
/freqgen.o
$(MATHSTUB
)
612 obj-
$(CONFIG_PWMGEN
) += pwmgen.o
613 pwmgen-objs
:= hal
/components
/pwmgen.o
$(MATHSTUB
)
614 obj-
$(CONFIG_SIGGEN
) += siggen.o
615 siggen-objs
:= hal
/components
/siggen.o
$(MATHSTUB
)
616 obj-
$(CONFIG_PID
) += pid.o
617 pid-objs
:= hal
/components
/pid.o
$(MATHSTUB
)
618 obj-
$(CONFIG_AT_PID
) += at_pid.o
619 at_pid-objs
:= hal
/components
/at_pid.o
$(MATHSTUB
)
620 obj-
$(CONFIG_PID
) += threads.o
621 threads-objs
:= hal
/components
/threads.o
$(MATHSTUB
)
622 obj-
$(CONFIG_SUPPLY
) += supply.o
623 supply-objs
:= hal
/components
/supply.o
$(MATHSTUB
)
624 obj-
$(CONFIG_SIM_ENCODER
) += sim_encoder.o
625 sim_encoder-objs
:= hal
/components
/sim_encoder.o
$(MATHSTUB
)
626 obj-
$(CONFIG_WEIGHTED_SUM
) += weighted_sum.o
627 weighted_sum-objs
:= hal
/components
/weighted_sum.o
$(MATHSTUB
)
628 obj-
$(CONFIG_MODMATH
) += modmath.o
629 modmath-objs
:= hal
/components
/modmath.o
$(MATHSTUB
)
630 obj-
$(CONFIG_STREAMER
) += streamer.o
631 streamer-objs
:= hal
/components
/streamer.o
$(MATHSTUB
)
632 obj-
$(CONFIG_SAMPLER
) += sampler.o
633 sampler-objs
:= hal
/components
/sampler.o
$(MATHSTUB
)
635 # Subdirectory: hal/drivers
636 ifneq ($(BUILD_SYS
),sim
)
637 obj-
$(CONFIG_HAL_PARPORT
) += hal_parport.o
638 hal_parport-objs
:= hal
/drivers
/hal_parport.o
$(MATHSTUB
)
639 obj-
$(CONFIG_PCI_8255
) += pci_8255.o
640 pci_8255-objs
:= hal
/drivers
/pci_8255.o
641 obj-
$(CONFIG_HAL_TIRO
) += hal_tiro.o
642 hal_tiro-objs
:= hal
/drivers
/hal_tiro.o
$(MATHSTUB
)
643 obj-
$(CONFIG_HAL_STG
) += hal_stg.o
644 hal_stg-objs
:= hal
/drivers
/hal_stg.o
$(MATHSTUB
)
645 obj-
$(CONFIG_HAL_VTI
) += hal_vti.o
646 hal_vti-objs
:= hal
/drivers
/hal_vti.o
$(MATHSTUB
)
647 obj-
$(CONFIG_HAL_EVOREG
) += hal_evoreg.o
648 hal_evoreg-objs
:= hal
/drivers
/hal_evoreg.o
$(MATHSTUB
)
649 obj-
$(CONFIG_HAL_MOTENC
) += hal_motenc.o
650 hal_motenc-objs
:= hal
/drivers
/hal_motenc.o
$(MATHSTUB
)
651 obj-
$(CONFIG_HAL_M5I20
) += hal_m5i20.o
652 hal_m5i20-objs
:= hal
/drivers
/hal_m5i20.o
$(MATHSTUB
)
653 obj-
$(CONFIG_HAL_AX521H
) += hal_ax5214h.o
654 hal_ax5214h-objs
:= hal
/drivers
/hal_ax5214h.o
$(MATHSTUB
)
655 obj-
$(CONFIG_HAL_PPMC
) += hal_ppmc.o
656 hal_ppmc-objs
:= hal
/drivers
/hal_ppmc.o
$(MATHSTUB
)
657 obj-
$(CONFIG_HAL_SPEAKER
) += hal_speaker.o
658 hal_speaker-objs
:= hal
/drivers
/hal_speaker.o
$(MATHSTUB
)
659 obj-
$(CONFIG_HAL_SKELETON
) += hal_skeleton.o
660 hal_skeleton-objs
:= hal
/drivers
/hal_skeleton.o
$(MATHSTUB
)
661 obj-
$(CONFIG_OPTO_AC5
) += opto_ac5.o
662 opto_ac5-objs
:= hal
/drivers
/opto_ac5.o
$(MATHSTUB
)
664 obj-
$(CONFIG_HOSTMOT2
) += hostmot2.o hm2_7i43.o hm2_pci.o hm2_test.o
666 hal
/drivers
/mesa-hostmot2
/hostmot2.o \
667 hal
/drivers
/mesa-hostmot2
/backported-strings.o \
668 hal
/drivers
/mesa-hostmot2
/ioport.o \
669 hal
/drivers
/mesa-hostmot2
/encoder.o \
670 hal
/drivers
/mesa-hostmot2
/pwmgen.o \
671 hal
/drivers
/mesa-hostmot2
/stepgen.o \
672 hal
/drivers
/mesa-hostmot2
/watchdog.o \
673 hal
/drivers
/mesa-hostmot2
/pins.o \
674 hal
/drivers
/mesa-hostmot2
/tram.o \
675 hal
/drivers
/mesa-hostmot2
/raw.o \
676 hal
/drivers
/mesa-hostmot2
/bitfile.o \
679 hal
/drivers
/mesa-hostmot2
/hm2_7i43.o \
680 hal
/drivers
/mesa-hostmot2
/bitfile.o \
683 hal
/drivers
/mesa-hostmot2
/hm2_pci.o \
684 hal
/drivers
/mesa-hostmot2
/bitfile.o \
687 hal
/drivers
/mesa-hostmot2
/hm2_test.o \
688 hal
/drivers
/mesa-hostmot2
/bitfile.o \
691 ifneq "$(filter 2.6.%, $(kernelvers))" ""
692 obj-
$(CONFIG_PROBE_PARPORT
) += probe_parport.o
693 probe_parport-objs
:= hal
/drivers
/probe_parport.o
$(MATHSTUB
)
697 obj-
$(CONFIG_CLASSICLADDER_RT
) += classicladder_rt.o
698 classicladder_rt-objs
:= hal
/classicladder
/module_hal.o
$(MATHSTUB
)
699 classicladder_rt-objs
+= hal
/classicladder
/arithm_eval.o
700 classicladder_rt-objs
+= hal
/classicladder
/arrays.o
701 classicladder_rt-objs
+= hal
/classicladder
/calc.o
702 classicladder_rt-objs
+= hal
/classicladder
/calc_sequential.o
703 classicladder_rt-objs
+= hal
/classicladder
/manager.o
704 classicladder_rt-objs
+= hal
/classicladder
/symbols.o
705 classicladder_rt-objs
+= hal
/classicladder
/vars_access.o
707 ifdef SEQUENTIAL_SUPPORT
708 classicladder_rt-objs
+= hal
/classicladder
/calc_sequential_rt.o
712 scope_rt-objs
:= hal
/utils
/scope_rt.o
$(MATHSTUB
)
715 hal_lib-objs
:= hal
/hal_lib.o
$(MATHSTUB
)
718 trivkins-objs
:= emc
/kinematics
/trivkins.o
721 5axiskins-objs
:= emc
/kinematics
/5axiskins.o
724 maxkins-objs
:= emc
/kinematics
/maxkins.o
726 obj-m
+= gantrykins.o
727 gantrykins-objs
:= emc
/kinematics
/gantrykins.o
729 obj-m
+= rotatekins.o
730 rotatekins-objs
:= emc
/kinematics
/rotatekins.o
732 obj-m
+= tripodkins.o
733 tripodkins-objs
:= emc
/kinematics
/tripodkins.o
735 obj-m
+= genhexkins.o
736 genhexkins-objs
:= emc
/kinematics
/genhexkins.o
737 genhexkins-objs
+= libnml
/posemath
/_posemath.o
738 genhexkins-objs
+= libnml
/posemath
/sincos.o
$(MATHSTUB
)
740 obj-m
+= genserkins.o
741 genserkins-objs
:= emc
/kinematics
/genserkins.o
742 genserkins-objs
+= libnml
/posemath
/gomath.o
743 genserkins-objs
+= libnml
/posemath
/sincos.o
$(MATHSTUB
)
746 pumakins-objs
:= emc
/kinematics
/pumakins.o
747 pumakins-objs
+= libnml
/posemath
/_posemath.o
748 pumakins-objs
+= libnml
/posemath
/sincos.o
$(MATHSTUB
)
751 scarakins-objs
:= emc
/kinematics
/scarakins.o
752 scarakins-objs
+= libnml
/posemath
/_posemath.o
753 scarakins-objs
+= libnml
/posemath
/sincos.o
$(MATHSTUB
)
755 obj-
$(CONFIG_MOTMOD
) += motmod.o
756 motmod-objs
:= emc
/kinematics
/cubic.o
757 motmod-objs
+= emc
/kinematics
/tc.o
758 motmod-objs
+= emc
/kinematics
/tp.o
759 motmod-objs
+= emc
/motion
/motion.o
760 motmod-objs
+= emc
/motion
/command.o
761 motmod-objs
+= emc
/motion
/control.o
762 motmod-objs
+= emc
/motion
/homing.o
763 motmod-objs
+= emc
/motion
/emcmotglb.o
764 motmod-objs
+= emc
/motion
/emcmotutil.o
765 motmod-objs
+= libnml
/posemath
/_posemath.o
766 motmod-objs
+= libnml
/posemath
/sincos.o
$(MATHSTUB
)
768 TORTOBJS
= $(foreach file
,$($(patsubst %.o
,%,$(1))-objs
), objects
/rt
$(file
))
769 ifeq ($(BUILD_SYS
),sim
)
770 EXTRA_CFLAGS
+= -fPIC
-Os
771 RTOBJS
:= $(sort $(foreach mod
,$(obj-m
),$(call TORTOBJS
,$(mod
))))
773 RTDEPS
:= $(sort $(patsubst objects
/%.o
,depends
/%.d
, $(RTOBJS
)))
774 IS_POWERPC
= test `uname -m` = ppc
-o
`uname -m` = ppc64
775 modules
: $(patsubst %.o
,..
/rtlib
/%.so
,$(obj-m
))
778 @
ld -r
-o objects
/$*.tmp
$^
779 @if
! $(IS_POWERPC
); then objcopy
-j .rtapi_export
-O binary objects
/$*.tmp objects
/$*.exp
; fi
780 @if
! $(IS_POWERPC
); then objcopy
-G __i686.get_pc_thunk.bx
`xargs -r0n1 echo -G < objects/$*.exp | grep -ve '^-G $$' | sort -u` objects
/$*.tmp
; fi
781 @
ld -shared
-Bsymbolic
-o
$@ objects
/$*.tmp
-lm
783 $(sort $(RTDEPS
)): depends
/rt
%.d
: %.c
786 @
$(call DEP
,$(CC
),$@
$(patsubst depends
/%.d
,objects
/%.o
,$@
),$@
,$(OPT
) $(DEBUG
) -DSIM
-DRTAPI
$(EXTRA_CFLAGS
) $<)
788 # Rules to make .o (object) files
789 $(sort $(RTOBJS
)) : objects
/rt
%.o
: %.c
790 $(ECHO
) Compiling realtime
$<
792 @
$(CC
) -c
$(OPT
) $(DEBUG
) -DSIM
-DSIMULATOR
-DRTAPI
$(EXTRA_CFLAGS
) $< -o
$@
795 ifeq ($(BUILD_SYS
),normal
)
796 modules
: $(patsubst %,..
/rtlib
/%,$(obj-m
))
797 RTOBJS
:= $(sort $(foreach mod
,$(obj-m
),$(call TORTOBJS
,$(mod
))))
798 RTDEPS
:= $(sort $(patsubst objects
/%.o
,depends
/%.d
, $(RTOBJS
)))
800 $(sort $(RTDEPS
)): depends
/rt
%.d
: %.c
803 @
$(call DEP
,$(CC
),$@
$(patsubst depends
/%.d
,objects
/%.o
,$@
),$@
,$(EXTRA_CFLAGS
) $<)
806 # Rules to make .o (object) files
807 $(sort $(RTOBJS
)) : objects
/rt
%.o
: %.c
808 $(ECHO
) Compiling realtime
$<
810 $(CC
) -c
-DRTAPI
-nostdinc
-isystem
$(shell $(CC
) -print-file-name
=include) -I
$(KERNELDIR
)/include $(EXTRA_CFLAGS
) $< -o
$@
814 @
ld -r
-static
-S
-Os
-o
$@
$^
$(EXTRALINK
) $(MATHLIB
)
817 ifneq "$(filter normal sim,$(BUILD_SYS))" ""
818 ifneq "$(BUILD_SYS)" "sim"
819 ..
/rtlib
/rtapi
$(MODULE_EXT
): $(addprefix objects
/rt
,$(rtapi-objs
))
821 ..
/rtlib
/classicladder_rt
$(MODULE_EXT
): $(addprefix objects
/rt
,$(classicladder_rt-objs
))
822 ..
/rtlib
/boss_plc
$(MODULE_EXT
): $(addprefix objects
/rt
,$(boss_plc-objs
))
823 ..
/rtlib
/debounce
$(MODULE_EXT
): $(addprefix objects
/rt
,$(debounce-objs
))
824 ..
/rtlib
/encoder
$(MODULE_EXT
): $(addprefix objects
/rt
,$(encoder-objs
))
825 ..
/rtlib
/counter
$(MODULE_EXT
): $(addprefix objects
/rt
,$(counter-objs
))
826 ..
/rtlib
/encoder_ratio
$(MODULE_EXT
): $(addprefix objects
/rt
,$(encoder_ratio-objs
))
827 ..
/rtlib
/stepgen
$(MODULE_EXT
): $(addprefix objects
/rt
,$(stepgen-objs
))
828 ..
/rtlib
/freqgen
$(MODULE_EXT
): $(addprefix objects
/rt
,$(freqgen-objs
))
829 ..
/rtlib
/pwmgen
$(MODULE_EXT
): $(addprefix objects
/rt
,$(pwmgen-objs
))
830 ..
/rtlib
/siggen
$(MODULE_EXT
): $(addprefix objects
/rt
,$(siggen-objs
))
831 ..
/rtlib
/at_pid
$(MODULE_EXT
): $(addprefix objects
/rt
,$(at_pid-objs
))
832 ..
/rtlib
/pid
$(MODULE_EXT
): $(addprefix objects
/rt
,$(pid-objs
))
833 ..
/rtlib
/threads
$(MODULE_EXT
): $(addprefix objects
/rt
,$(threads-objs
))
834 ..
/rtlib
/supply
$(MODULE_EXT
): $(addprefix objects
/rt
,$(supply-objs
))
835 ..
/rtlib
/sim_encoder
$(MODULE_EXT
): $(addprefix objects
/rt
,$(sim_encoder-objs
))
836 ..
/rtlib
/weighted_sum
$(MODULE_EXT
): $(addprefix objects
/rt
,$(weighted_sum-objs
))
837 ..
/rtlib
/modmath
$(MODULE_EXT
): $(addprefix objects
/rt
,$(modmath-objs
))
838 ..
/rtlib
/streamer
$(MODULE_EXT
): $(addprefix objects
/rt
,$(streamer-objs
))
839 ..
/rtlib
/sampler
$(MODULE_EXT
): $(addprefix objects
/rt
,$(sampler-objs
))
840 ..
/rtlib
/hal_parport
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_parport-objs
))
841 ..
/rtlib
/pci_8255
$(MODULE_EXT
): $(addprefix objects
/rt
,$(pci_8255-objs
))
842 ..
/rtlib
/hal_tiro
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_tiro-objs
))
843 ..
/rtlib
/hal_stg
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_stg-objs
))
844 ..
/rtlib
/hal_vti
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_vti-objs
))
845 ..
/rtlib
/hal_evoreg
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_evoreg-objs
))
846 ..
/rtlib
/hal_motenc
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_motenc-objs
))
847 ..
/rtlib
/hal_m5i20
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_m5i20-objs
))
848 ..
/rtlib
/hal_ax5214h
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_ax5214h-objs
))
849 ..
/rtlib
/hal_ppmc
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_ppmc-objs
))
850 ..
/rtlib
/hal_skeleton
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_skeleton-objs
))
851 ..
/rtlib
/hal_speaker
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_speaker-objs
))
852 ..
/rtlib
/opto_ac5
$(MODULE_EXT
): $(addprefix objects
/rt
,$(opto_ac5-objs
))
853 ..
/rtlib
/scope_rt
$(MODULE_EXT
): $(addprefix objects
/rt
,$(scope_rt-objs
))
854 ..
/rtlib
/hal_lib
$(MODULE_EXT
): $(addprefix objects
/rt
,$(hal_lib-objs
))
855 ..
/rtlib
/motmod
$(MODULE_EXT
): $(addprefix objects
/rt
,$(motmod-objs
))
856 ..
/rtlib
/trivkins
$(MODULE_EXT
): $(addprefix objects
/rt
,$(trivkins-objs
))
857 ..
/rtlib
/5axiskins
$(MODULE_EXT
): $(addprefix objects
/rt
,$(5axiskins-objs
))
858 ..
/rtlib
/maxkins
$(MODULE_EXT
): $(addprefix objects
/rt
,$(maxkins-objs
))
859 ..
/rtlib
/gantrykins
$(MODULE_EXT
): $(addprefix objects
/rt
,$(gantrykins-objs
))
860 ..
/rtlib
/rotatekins
$(MODULE_EXT
): $(addprefix objects
/rt
,$(rotatekins-objs
))
861 ..
/rtlib
/tripodkins
$(MODULE_EXT
): $(addprefix objects
/rt
,$(tripodkins-objs
))
862 ..
/rtlib
/genhexkins
$(MODULE_EXT
): $(addprefix objects
/rt
,$(genhexkins-objs
))
863 ..
/rtlib
/genserkins
$(MODULE_EXT
): $(addprefix objects
/rt
,$(genserkins-objs
))
864 ..
/rtlib
/pumakins
$(MODULE_EXT
): $(addprefix objects
/rt
,$(pumakins-objs
))
865 ..
/rtlib
/scarakins
$(MODULE_EXT
): $(addprefix objects
/rt
,$(scarakins-objs
))
867 ifeq ($(TRIVIAL_BUILD
),no
)
868 RTDEPS
:= $(sort $(patsubst objects
/%.o
,depends
/%.d
,$(RTOBJS
)))
874 # Phony so that it is always rebuilt when requested, not because it
875 # shouldn't exist as a file
880 --exclude
=depends
--exclude
=objects
--exclude
=.mod.c \
881 '--langmap=make:+(Submakefile),make:+(Makefile.inc),c:+.comp' \
882 -I EXPORT_SYMBOL
+,RTAPI_MP_INT
+,RTAPI_MP_LONG
+,RTAPI_MP_STRING
+ \
883 -I RTAPI_MP_ARRAY_INT
+,RTAPI_MP_ARRAY_LONG
+,RTAPI_MP_ARRAY_STRING
+ \
884 -I MODULE_AUTHOR
+,MODULE_DESCRIPTION
+,MODULE_LICENSE
+ \
885 -R . ..
/tcl ..
/scripts ..
/share
/axis
/tcl
887 find .
-type f
-name
'*.[ch]' |xargs etags
-l c
--append
888 find .
-type f
-name
'*.cc' |xargs etags
-l c
++ --append
889 find .
-type f
-name
'*.hh' |xargs etags
-l c
++ --append
893 swish-e
-c .swish_config
-v
0 -i
$(BASEPWD
) \
894 $(dir $(BASEPWD
))tcl \
895 $(dir $(BASEPWD
))share
/axis
/tcl \
896 $(dir $(BASEPWD
))scripts \
897 $(dir $(BASEPWD
))configs \
898 $(dir $(BASEPWD
))docs
/src \
899 $(dir $(BASEPWD
))docs
/man
/man1
901 # When you depend on objects/var-ZZZ you are depending on the contents of the
902 # variable ZZZ, which is assumed to depend on a Makefile, a Submakefile, or
904 objects
/var-
%: Makefile
$(wildcard $(SUBMAKEFILES
)) Makefile.inc
907 @sh move-if-change
$@.tmp
$@
909 ..
/lib
/%.so
: ..
/lib
/%.so
.0
910 ln
-sf
$(notdir $<) $@
912 # vim:ts=8:sts=8:sw=8:noet: