Advertisement
Guest User

Untitled

a guest
Nov 18th, 2011
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 33.52 KB | None | 0 0
  1. .PHONY: docs docsclean checkref checkref_en checkref_de checkref_es checkref_fr
  2. .PHONY: pdfdocs htmldocs install-doc install-doc-pdf install-doc-html
  3.  
  4. DOC_DIR=../docs
  5. DOC_SRCDIR=../docs/src
  6.  
  7. MAN_SRCS := $(sort \
  8. $(patsubst %.in,%,$(wildcard $(DOC_DIR)/man/man1/*.1 $(DOC_DIR)/man/man1/*.1.in)) \
  9. $(filter-out $(DOC_DIR)/man/man3/skeleton%, $(wildcard $(DOC_DIR)/man/man3/*.3rtapi $(DOC_DIR)/man/man3/*.3hal)) \
  10. $(filter-out $(DOC_DIR)/man/man9/skeleton%, $(wildcard $(DOC_DIR)/man/man9/*.9)) \
  11. $(COMP_MANPAGES) $(COMP_DRIVER_MANPAGES))
  12.  
  13. ifneq ($(MANDB),)
  14. default: $(DOC_DIR)/man/index.db
  15. $(DOC_DIR)/man/index.db: $(MAN_SRCS)
  16. @echo "Updating 'whatis' database"
  17. @$(MANDB) $(DOC_DIR)/man
  18. endif
  19.  
  20. ifeq ($(BUILD_DOCS),yes)
  21. DOC_SRCS := \
  22. code/Code_Notes.txt \
  23. code/Style_Guide.txt \
  24. code/NML_Messages.txt \
  25. common/Document_Header.txt \
  26. common/Document_Header_de.txt \
  27. common/Document_Header_es.txt \
  28. common/Document_Header_fr.txt \
  29. common/Document_Header_pl.txt \
  30. common/Getting_EMC.txt \
  31. common/Getting_EMC_de.txt \
  32. common/Getting_EMC_es.txt \
  33. common/Getting_EMC_fr.txt \
  34. common/Getting_EMC_pl.txt \
  35. common/Glossary.txt \
  36. common/Glossary_de.txt \
  37. common/Glossary_es.txt \
  38. common/Glossary_fr.txt \
  39. common/Glossary_pl.txt \
  40. common/GPLD_Copyright.txt \
  41. common/GPLD_Copyright_fr.txt \
  42. common/GPLD_Copyright_pl.txt \
  43. common/Integrator_Concepts.txt \
  44. common/Integrator_Concepts_de.txt \
  45. common/Integrator_Concepts_es.txt \
  46. common/Integrator_Concepts_fr.txt \
  47. common/Integrator_Concepts_pl.txt \
  48. common/Linux_FAQ.txt \
  49. common/Linux_FAQ_de.txt \
  50. common/Linux_FAQ_es.txt \
  51. common/Linux_FAQ_fr.txt \
  52. common/Linux_FAQ_pl.txt \
  53. common/machining_center.txt \
  54. common/machining_center_de.txt \
  55. common/machining_center_es.txt \
  56. common/machining_center_fr.txt \
  57. common/machining_center_pl.txt \
  58. common/outdated-notice_fr.txt \
  59. common/overleaf.txt \
  60. common/overleaf_fr.txt \
  61. common/overleaf_pl.txt \
  62. common/Stepper_Diagnostics.txt \
  63. common/Stepper_Diagnostics_de.txt \
  64. common/Stepper_Diagnostics_es.txt \
  65. common/Stepper_Diagnostics_fr.txt \
  66. common/Stepper_Diagnostics_pl.txt \
  67. common/System_Requirements.txt \
  68. common/System_Requirements_de.txt \
  69. common/System_Requirements_es.txt \
  70. common/System_Requirements_fr.txt \
  71. common/System_Requirements_pl.txt \
  72. common/translator-needed_de.txt \
  73. common/translator-needed_es.txt \
  74. common/Updating_EMC.txt \
  75. common/Updating_EMC_de.txt \
  76. common/Updating_EMC_es.txt \
  77. common/Updating_EMC_fr.txt \
  78. common/Updating_EMC_pl.txt \
  79. common/User_Concepts.txt \
  80. common/User_Concepts_de.txt \
  81. common/User_Concepts_es.txt \
  82. common/User_Concepts_fr.txt \
  83. common/User_Concepts_pl.txt \
  84. common/userforeword.txt \
  85. common/userforeword_de.txt \
  86. common/userforeword_es.txt \
  87. common/userforeword_fr.txt \
  88. common/userforeword_pl.txt \
  89. common/user_intro.txt \
  90. common/user_intro_de.txt \
  91. common/user_intro_es.txt \
  92. common/user_intro_fr.txt \
  93. common/user_intro_pl.txt \
  94. config/copy_and_run.txt \
  95. config/copy_and_run_de.txt \
  96. config/copy_and_run_es.txt \
  97. config/copy_and_run_fr.txt \
  98. config/copy_and_run_pl.txt \
  99. config/emc2hal.txt \
  100. config/emc2hal_de.txt \
  101. config/emc2hal_es.txt \
  102. config/emc2hal_fr.txt \
  103. config/emc2hal_pl.txt \
  104. config/ini_config.txt \
  105. config/ini_config_de.txt \
  106. config/ini_config_es.txt \
  107. config/ini_config_fr.txt \
  108. config/ini_config_pl.txt \
  109. config/ini_homing.txt \
  110. config/ini_homing_de.txt \
  111. config/ini_homing_es.txt \
  112. config/ini_homing_fr.txt \
  113. config/ini_homing_pl.txt \
  114. config/lathe_config.txt \
  115. config/lathe_config_de.txt \
  116. config/lathe_config_es.txt \
  117. config/lathe_config_fr.txt \
  118. config/lathe_config_pl.txt \
  119. config/pncconf.txt \
  120. config/pncconf_de.txt \
  121. config/pncconf_es.txt \
  122. config/pncconf_fr.txt \
  123. config/pncconf_pl.txt \
  124. config/stepconf.txt \
  125. config/stepconf_de.txt \
  126. config/stepconf_es.txt \
  127. config/stepconf_fr.txt \
  128. config/stepconf_pl.txt \
  129. config/stepper.txt \
  130. config/stepper_de.txt \
  131. config/stepper_es.txt \
  132. config/stepper_fr.txt \
  133. config/stepper_pl.txt \
  134. drivers/AX5214H.txt \
  135. drivers/AX5214H_de.txt \
  136. drivers/AX5214H_es.txt \
  137. drivers/AX5214H_fr.txt \
  138. drivers/AX5214H_pl.txt \
  139. drivers/GS2.txt \
  140. drivers/GS2_de.txt \
  141. drivers/GS2_es.txt \
  142. drivers/GS2_fr.txt \
  143. drivers/GS2_pl.txt \
  144. drivers/hostmot2.txt \
  145. drivers/hostmot2_de.txt \
  146. drivers/hostmot2_es.txt \
  147. drivers/hostmot2_fr.txt \
  148. drivers/hostmot2_pl.txt \
  149. drivers/motenc.txt \
  150. drivers/motenc_de.txt \
  151. drivers/motenc_es.txt \
  152. drivers/motenc_fr.txt \
  153. drivers/motenc_pl.txt \
  154. drivers/opto22.txt \
  155. drivers/opto22_de.txt \
  156. drivers/opto22_es.txt \
  157. drivers/opto22_fr.txt \
  158. drivers/opto22_pl.txt \
  159. drivers/pico_ppmc.txt \
  160. drivers/pico_ppmc_de.txt \
  161. drivers/pico_ppmc_es.txt \
  162. drivers/pico_ppmc_fr.txt \
  163. drivers/pico_ppmc_pl.txt \
  164. drivers/pluto_p.txt \
  165. drivers/pluto_p_de.txt \
  166. drivers/pluto_p_es.txt \
  167. drivers/pluto_p_fr.txt \
  168. drivers/pluto_p_pl.txt \
  169. drivers/servo_to_go.txt \
  170. drivers/servo_to_go_de.txt \
  171. drivers/servo_to_go_es.txt \
  172. drivers/servo_to_go_fr.txt \
  173. drivers/servo_to_go_pl.txt \
  174. examples/gcode.txt \
  175. examples/gcode_de.txt \
  176. examples/gcode_es.txt \
  177. examples/gcode_fr.txt \
  178. examples/gcode_pl.txt \
  179. examples/gs2_example.txt \
  180. examples/gs2_example_de.txt \
  181. examples/gs2_example_es.txt \
  182. examples/gs2_example_fr.txt \
  183. examples/gs2_example_pl.txt \
  184. examples/misc.txt \
  185. examples/misc_de.txt \
  186. examples/misc_es.txt \
  187. examples/misc_fr.txt \
  188. examples/misc_pl.txt \
  189. examples/mpg.txt \
  190. examples/mpg_de.txt \
  191. examples/mpg_es.txt \
  192. examples/mpg_fr.txt \
  193. examples/mpg_pl.txt \
  194. examples/pci_parallel_port.txt \
  195. examples/pci_parallel_port_de.txt \
  196. examples/pci_parallel_port_es.txt \
  197. examples/pci_parallel_port_fr.txt \
  198. examples/pci_parallel_port_pl.txt \
  199. examples/spindle.txt \
  200. examples/spindle_de.txt \
  201. examples/spindle_es.txt \
  202. examples/spindle_fr.txt \
  203. examples/spindle_pl.txt \
  204. gcode/coordinates.txt \
  205. gcode/coordinates_de.txt \
  206. gcode/coordinates_es.txt \
  207. gcode/coordinates_fr.txt \
  208. gcode/coordinates_pl.txt \
  209. gcode/main.txt \
  210. gcode/main_de.txt \
  211. gcode/main_es.txt \
  212. gcode/main_fr.txt \
  213. gcode/main_pl.txt \
  214. gcode/mill_canned.txt \
  215. gcode/mill_canned_de.txt \
  216. gcode/mill_canned_es.txt \
  217. gcode/mill_canned_fr.txt \
  218. gcode/mill_canned_pl.txt \
  219. gcode/overview.txt \
  220. gcode/overview_de.txt \
  221. gcode/overview_es.txt \
  222. gcode/overview_fr.txt \
  223. gcode/overview_pl.txt \
  224. gcode/rs274ngc.txt \
  225. gcode/rs274ngc_de.txt \
  226. gcode/rs274ngc_es.txt \
  227. gcode/rs274ngc_fr.txt \
  228. gcode/rs274ngc_pl.txt \
  229. gcode/tool_compensation.txt \
  230. gcode/tool_compensation_de.txt \
  231. gcode/tool_compensation_es.txt \
  232. gcode/tool_compensation_fr.txt \
  233. gcode/tool_compensation_pl.txt \
  234. gui/axis.txt \
  235. gui/axis_de.txt \
  236. gui/axis_es.txt \
  237. gui/axis_fr.txt \
  238. gui/axis_pl.txt \
  239. gui/gladevcp.txt \
  240. gui/gladevcp_de.txt \
  241. gui/gladevcp_es.txt \
  242. gui/gladevcp_fr.txt \
  243. gui/gladevcp_pl.txt \
  244. gui/halui.txt \
  245. gui/halui_de.txt \
  246. gui/halui_es.txt \
  247. gui/halui_fr.txt \
  248. gui/halui_pl.txt \
  249. gui/image-to-gcode.txt \
  250. gui/image-to-gcode_de.txt \
  251. gui/image-to-gcode_es.txt \
  252. gui/image-to-gcode_fr.txt \
  253. gui/image-to-gcode_pl.txt \
  254. gui/keystick.txt \
  255. gui/keystick_de.txt \
  256. gui/keystick_es.txt \
  257. gui/keystick_fr.txt \
  258. gui/keystick_pl.txt \
  259. gui/mini.txt \
  260. gui/mini_de.txt \
  261. gui/mini_es.txt \
  262. gui/mini_fr.txt \
  263. gui/mini_pl.txt \
  264. gui/ngcgui.txt \
  265. gui/ngcgui_de.txt \
  266. gui/ngcgui_es.txt \
  267. gui/ngcgui_fr.txt \
  268. gui/ngcgui_pl.txt \
  269. gui/tkemc.txt \
  270. gui/tkemc_de.txt \
  271. gui/tkemc_es.txt \
  272. gui/tkemc_fr.txt \
  273. gui/tkemc_pl.txt \
  274. gui/touchy.txt \
  275. gui/touchy_de.txt \
  276. gui/touchy_es.txt \
  277. gui/touchy_fr.txt \
  278. gui/touchy_pl.txt \
  279. hal/basic_hal.txt \
  280. hal/basic_hal_de.txt \
  281. hal/basic_hal_es.txt \
  282. hal/basic_hal_fr.txt \
  283. hal/basic_hal_pl.txt \
  284. hal/comp.txt \
  285. hal/comp_de.txt \
  286. hal/comp_es.txt \
  287. hal/comp_fr.txt \
  288. hal/comp_pl.txt \
  289. hal/components.txt \
  290. hal/components_de.txt \
  291. hal/components_es.txt \
  292. hal/components_fr.txt \
  293. hal/components_pl.txt \
  294. hal/general_ref.txt \
  295. hal/general_ref_de.txt \
  296. hal/general_ref_es.txt \
  297. hal/general_ref_fr.txt \
  298. hal/general_ref_pl.txt \
  299. hal/hal-examples.txt \
  300. hal/hal-examples_de.txt \
  301. hal/hal-examples_es.txt \
  302. hal/hal-examples_fr.txt \
  303. hal/hal-examples_pl.txt \
  304. hal/halmodule.txt \
  305. hal/halmodule_de.txt \
  306. hal/halmodule_es.txt \
  307. hal/halmodule_fr.txt \
  308. hal/halmodule_pl.txt \
  309. hal/halshow.txt \
  310. hal/halshow_de.txt \
  311. hal/halshow_es.txt \
  312. hal/halshow_fr.txt \
  313. hal/halshow_pl.txt \
  314. hal/halui_examples.txt \
  315. hal/halui_examples_de.txt \
  316. hal/halui_examples_es.txt \
  317. hal/halui_examples_fr.txt \
  318. hal/halui_examples_pl.txt \
  319. hal/intro.txt \
  320. hal/intro_de.txt \
  321. hal/intro_es.txt \
  322. hal/intro_fr.txt \
  323. hal/intro_pl.txt \
  324. hal/parallel_port.txt \
  325. hal/parallel_port_de.txt \
  326. hal/parallel_port_es.txt \
  327. hal/parallel_port_fr.txt \
  328. hal/parallel_port_pl.txt \
  329. hal/pyvcp.txt \
  330. hal/pyvcp_de.txt \
  331. hal/pyvcp_es.txt \
  332. hal/pyvcp_fr.txt \
  333. hal/pyvcp_pl.txt \
  334. hal/pyvcp_examples.txt \
  335. hal/pyvcp_examples_de.txt \
  336. hal/pyvcp_examples_es.txt \
  337. hal/pyvcp_examples_fr.txt \
  338. hal/pyvcp_examples_pl.txt \
  339. hal/rtcomps.txt \
  340. hal/rtcomps_de.txt \
  341. hal/rtcomps_es.txt \
  342. hal/rtcomps_fr.txt \
  343. hal/rtcomps_pl.txt \
  344. hal/tools.txt \
  345. hal/tools_de.txt \
  346. hal/tools_es.txt \
  347. hal/tools_fr.txt \
  348. hal/tools_pl.txt \
  349. hal/tutorial.txt \
  350. hal/tutorial_de.txt \
  351. hal/tutorial_es.txt \
  352. hal/tutorial_fr.txt \
  353. hal/tutorial_pl.txt \
  354. install/Latency_Test.txt \
  355. install/Latency_Test_de.txt \
  356. install/Latency_Test_es.txt \
  357. install/Latency_Test_fr.txt \
  358. install/Latency_Test_pl.txt \
  359. ladder/classic_ladder.txt \
  360. ladder/classic_ladder_de.txt \
  361. ladder/classic_ladder_es.txt \
  362. ladder/classic_ladder_fr.txt \
  363. ladder/classic_ladder_pl.txt \
  364. ladder/ladder_examples.txt \
  365. ladder/ladder_examples_de.txt \
  366. ladder/ladder_examples_es.txt \
  367. ladder/ladder_examples_fr.txt \
  368. ladder/ladder_examples_pl.txt \
  369. ladder/ladder_intro.txt \
  370. ladder/ladder_intro_de.txt \
  371. ladder/ladder_intro_es.txt \
  372. ladder/ladder_intro_fr.txt \
  373. ladder/ladder_intro_pl.txt \
  374. lathe/lathe-user.txt \
  375. lathe/lathe-user_de.txt \
  376. lathe/lathe-user_es.txt \
  377. lathe/lathe-user_fr.txt \
  378. lathe/lathe-user_pl.txt \
  379. motion/kinematics.txt \
  380. motion/kinematics_de.txt \
  381. motion/kinematics_es.txt \
  382. motion/kinematics_fr.txt \
  383. motion/kinematics_pl.txt \
  384. motion/pid_theory.txt \
  385. motion/pid_theory_de.txt \
  386. motion/pid_theory_es.txt \
  387. motion/pid_theory_fr.txt \
  388. motion/pid_theory_pl.txt \
  389. motion/tweaking_steppers.txt \
  390. motion/tweaking_steppers_de.txt \
  391. motion/tweaking_steppers_es.txt \
  392. motion/tweaking_steppers_fr.txt \
  393. motion/tweaking_steppers_pl.txt \
  394. quickstart/stepper_quickstart.txt \
  395. quickstart/stepper_quickstart_de.txt \
  396. quickstart/stepper_quickstart_es.txt \
  397. quickstart/stepper_quickstart_fr.txt \
  398. quickstart/stepper_quickstart_pl.txt \
  399. Getting_Started.txt \
  400. Getting_Started_de.txt \
  401. Getting_Started_es.txt \
  402. Getting_Started_fr.txt \
  403. Getting_Started_pl.txt \
  404. Master_User.txt \
  405. Master_User_de.txt \
  406. Master_User_es.txt \
  407. Master_User_fr.txt \
  408. Master_User_pl.txt \
  409. Master_HAL.txt \
  410. Master_HAL_de.txt \
  411. Master_HAL_es.txt \
  412. Master_HAL_fr.txt \
  413. Master_HAL_pl.txt \
  414. Master_Integrator.txt \
  415. Master_Integrator_de.txt \
  416. Master_Integrator_es.txt \
  417. Master_Integrator_fr.txt \
  418. Master_Integrator_pl.txt \
  419. Master_Developer.txt \
  420.  
  421.  
  422. # DOC_SRCS_TXT := $(patsubst %.lyx, %.txt, $(DOC_SRCS))
  423. DOC_SRCS_TXT := $(patsubst %.txt, %.txt, $(DOC_SRCS))
  424.  
  425. DOC_SRCS_DE := $(filter %_de.txt, $(DOC_SRCS_TXT))
  426. DOC_SRCS_ES := $(filter %_es.txt, $(DOC_SRCS_TXT))
  427. DOC_SRCS_FR := $(filter %_fr.txt, $(DOC_SRCS_TXT))
  428. DOC_SRCS_PL := $(filter %_pl.txt, $(DOC_SRCS_TXT))
  429. DOC_SRCS_EN := $(filter-out $(DOC_SRCS_DE), $(filter-out $(DOC_SRCS_ES), $(filter-out $(DOC_SRCS_FR), $(filter-out $(DOC_SRCS_PL), $(DOC_SRCS_TXT)) ) ) )
  430.  
  431. DOC_SRCS_DE_SMALL := $(filter-out Master_%,$(DOC_SRCS_DE))
  432. DOC_SRCS_ES_SMALL := $(filter-out Master_%,$(DOC_SRCS_ES))
  433. DOC_SRCS_FR_SMALL := $(filter-out Master_%,$(DOC_SRCS_FR))
  434. DOC_SRCS_PL_SMALL := $(filter-out Master_%,$(DOC_SRCS_PL))
  435. DOC_SRCS_EN_SMALL := $(filter-out Master_%,$(DOC_SRCS_EN))
  436.  
  437. # DOC_SRCS_HTML := $(patsubst %.lyx, %.html, $(filter-out Master_%, $(DOC_SRCS)))
  438. DOC_SRCS_HTML := $(patsubst %.txt, %.html, $(filter-out Master_%, $(DOC_SRCS)))
  439. DOC_TARGETS_HTML := $(addprefix $(DOC_DIR)/html/,$(DOC_SRCS_HTML)) #$(subst /,_,$(DOC_SRCS_HTML)))
  440. DOC_TARGETS_XML := $(patsubst $(DOC_DIR)/html/%.html, objects/%.xml, $(DOC_TARGETS_HTML))
  441.  
  442. MAN_HTML_TARGETS := $(patsubst $(DOC_DIR)/man/%, $(DOC_DIR)/html/man/%.html, $(MAN_SRCS))
  443. PDF_TARGETS := $(addprefix $(DOC_DIR)/, \
  444. EMC2_Getting_Started.pdf \
  445. EMC2_Getting_Started_de.pdf \
  446. EMC2_Getting_Started_es.pdf \
  447. EMC2_Getting_Started_fr.pdf \
  448. EMC2_Getting_Started_pl.pdf \
  449. EMC2_User_Manual.pdf \
  450. EMC2_User_Manual_de.pdf \
  451. EMC2_User_Manual_es.pdf \
  452. EMC2_User_Manual_fr.pdf \
  453. EMC2_User_Manual_pl.pdf \
  454. EMC2_HAL_Manual.pdf \
  455. EMC2_HAL_Manual_de.pdf \
  456. EMC2_HAL_Manual_es.pdf \
  457. EMC2_HAL_Manual_fr.pdf \
  458. EMC2_HAL_Manual_pl.pdf \
  459. EMC2_Integrator_Manual.pdf \
  460. EMC2_Integrator_Manual_de.pdf \
  461. EMC2_Integrator_Manual_es.pdf \
  462. EMC2_Integrator_Manual_fr.pdf \
  463. EMC2_Integrator_Manual_pl.pdf \
  464. EMC2_Developer_Manual.pdf \
  465. EMC2_Manual_Pages.pdf \
  466. )
  467. #
  468. # It's better to keep the above on separate lines for troubleshooting by swapping
  469. # (Don't ask me how I know this.)
  470.  
  471. HTML_TARGETS := \
  472. $(DOC_TARGETS_HTML) \
  473. $(MAN_HTML_TARGETS) \
  474. $(DOC_DIR)/html/index.html \
  475. $(DOC_DIR)/html/index_de.html \
  476. $(DOC_DIR)/html/index_es.html \
  477. $(DOC_DIR)/html/index_fr.html \
  478. $(DOC_DIR)/html/index_pl.html \
  479. # $(DOC_DIR)/html/xref.html \
  480. # $(DOC_DIR)/html/xref_de.html \
  481. # $(DOC_DIR)/html/xref_es.html \
  482. # $(DOC_DIR)/html/xref_fr.html
  483.  
  484. L2HFLAGS := -init_file src/.latex2html-init -local_icons \
  485. -unsegment -link 4 -info 0 -split +0 -html_version 4.0,math,table
  486.  
  487. A2X = a2x --xsltproc-opts "--stringparam toc.section.depth 3 \
  488. --stringparam toc.max.depth 2 \
  489. --stringparam generate.section.toc.level 2 \
  490. --stringparam generate.toc 'book toc,title chapter toc'" \
  491. -a "scriptdir=$(DOC_SRCDIR)/" \
  492. --asciidoc-opts "-f $(DOC_SRCDIR)/docbook.conf" \
  493. --dblatex-opts "-P doc.publisher.show=0 -P latex.output.revhistory=0 -s $(DOC_SRCDIR)/emc2.sty"
  494.  
  495. ifeq ($(TRIVIAL_BUILD),no)
  496. -include $(patsubst %.txt, depends/%.d, $(DOC_SRCS_TXT))
  497. Makefile: $(patsubst %.txt, depends/%.d, $(DOC_SRCS_TXT))
  498. endif
  499.  
  500. ifeq ($(BUILD_DOCS_PDF),yes)
  501. docs: pdfdocs
  502. install-doc: install-doc-pdf
  503. endif
  504. ifeq ($(BUILD_DOCS_HTML),yes)
  505. docs: htmldocs
  506. install-doc: install-doc-html
  507. endif
  508. pdfdocs: $(PDF_TARGETS)
  509. htmldocs: $(HTML_TARGETS) $(MAN_HTML_TARGETS) checkref
  510.  
  511. # English only for now, checklinks.py needs adapting -mah
  512. checkref: checkref_en
  513. #checkref: checkref_en checkref_fr checkref_de checkref_es checkref_fr
  514.  
  515. checkref_en: $(DOC_DIR)/html/gcode.html $(DOC_DIR)/html/gcode/main.html
  516. python $(DOC_SRCDIR)/checklinks.py $^
  517.  
  518. checkref_de: $(DOC_DIR)/html/gcode_de.html $(DOC_DIR)/html/gcode/main_de.html
  519. -python $(DOC_SRCDIR)/checklinks.py $^
  520.  
  521. checkref_es: $(DOC_DIR)/html/gcode_es.html $(DOC_DIR)/html/gcode/main_es.html
  522. -python $(DOC_SRCDIR)/checklinks.py $^
  523.  
  524. checkref_fr: $(DOC_DIR)/html/gcode_fr.html $(DOC_DIR)/html/gcode/main_fr.html
  525. -python $(DOC_SRCDIR)/checklinks.py $^
  526.  
  527. checkref_pl: $(DOC_DIR)/html/gcode_pl.html $(DOC_DIR)/html/gcode/main_pl.html
  528. -python $(DOC_SRCDIR)/checklinks.py $^
  529.  
  530. MAN_SRCS_NOSO := $(patsubst $(DOC_DIR)/man/%,%, \
  531. $(shell grep -L '^\.so ' $(sort $(MAN_SRCS))))
  532.  
  533. PDF_MAN_ORDER := man1/emc.1 $(filter-out %/emc.1, $(filter man1/%, $(MAN_SRCS_NOSO))) \
  534. man3/intro.3hal $(filter-out %/undocumented.3hal %/intro.3hal, $(filter man3/%.3hal, $(MAN_SRCS_NOSO))) \
  535. man3/undocumented.3hal man3/intro.3rtapi $(filter-out %/undocumented.3rtapi %/intro.3rtapi, $(filter man3/%.3rtapi, $(MAN_SRCS_NOSO))) \
  536. man3/undocumented.3rtapi $(filter man9/%, $(MAN_SRCS_NOSO))
  537.  
  538. $(DOC_DIR)/EMC2_Manual_Pages.pdf: $(MAN_SRCS) objects/var-PDF_MAN_ORDER
  539. @echo Formatting manual pages as PDF
  540. (cd $(DOC_DIR)/man; groff -t -rC1 -rD1 -Tps -man $(PDF_MAN_ORDER)) \
  541. | ps2pdf - $@
  542.  
  543. $(DOC_DIR)/EMC2_Getting_Started.pdf: $(DOC_SRCDIR)/Getting_Started.pdf
  544. @ln -f $< $@
  545. $(DOC_DIR)/EMC2_Getting_Started_de.pdf: $(DOC_SRCDIR)/Getting_Started_de.pdf
  546. @ln -f $< $@
  547. $(DOC_DIR)/EMC2_Getting_Started_es.pdf: $(DOC_SRCDIR)/Getting_Started_es.pdf
  548. @ln -f $< $@
  549. $(DOC_DIR)/EMC2_Getting_Started_fr.pdf: $(DOC_SRCDIR)/Getting_Started_fr.pdf
  550. @ln -f $< $@
  551. $(DOC_DIR)/EMC2_Getting_Started_pl.pdf: $(DOC_SRCDIR)/Getting_Started_pl.pdf
  552. @ln -f $< $@
  553. $(DOC_DIR)/EMC2_User_Manual.pdf: $(DOC_SRCDIR)/Master_User.pdf
  554. @ln -f $< $@
  555. $(DOC_DIR)/EMC2_User_Manual_de.pdf: $(DOC_SRCDIR)/Master_User_de.pdf
  556. @ln -f $< $@
  557. $(DOC_DIR)/EMC2_User_Manual_es.pdf: $(DOC_SRCDIR)/Master_User_es.pdf
  558. @ln -f $< $@
  559. $(DOC_DIR)/EMC2_User_Manual_fr.pdf: $(DOC_SRCDIR)/Master_User_fr.pdf
  560. @ln -f $< $@
  561. $(DOC_DIR)/EMC2_User_Manual_pl.pdf: $(DOC_SRCDIR)/Master_User_pl.pdf
  562. @ln -f $< $@
  563. $(DOC_DIR)/EMC2_HAL_Manual.pdf: $(DOC_SRCDIR)/Master_HAL.pdf
  564. @ln -f $< $@
  565. $(DOC_DIR)/EMC2_HAL_Manual_de.pdf: $(DOC_SRCDIR)/Master_HAL_de.pdf
  566. @ln -f $< $@
  567. $(DOC_DIR)/EMC2_HAL_Manual_es.pdf: $(DOC_SRCDIR)/Master_HAL_es.pdf
  568. @ln -f $< $@
  569. $(DOC_DIR)/EMC2_HAL_Manual_fr.pdf: $(DOC_SRCDIR)/Master_HAL_fr.pdf
  570. @ln -f $< $@
  571. $(DOC_DIR)/EMC2_HAL_Manual_pl.pdf: $(DOC_SRCDIR)/Master_HAL_pl.pdf
  572. @ln -f $< $@
  573. $(DOC_DIR)/EMC2_Integrator_Manual.pdf: $(DOC_SRCDIR)/Master_Integrator.pdf
  574. @ln -f $< $@
  575. $(DOC_DIR)/EMC2_Integrator_Manual_de.pdf: $(DOC_SRCDIR)/Master_Integrator_de.pdf
  576. @ln -f $< $@
  577. $(DOC_DIR)/EMC2_Integrator_Manual_es.pdf: $(DOC_SRCDIR)/Master_Integrator_es.pdf
  578. @ln -f $< $@
  579. $(DOC_DIR)/EMC2_Integrator_Manual_fr.pdf: $(DOC_SRCDIR)/Master_Integrator_fr.pdf
  580. @ln -f $< $@
  581. $(DOC_DIR)/EMC2_Integrator_Manual_pl.pdf: $(DOC_SRCDIR)/Master_Integrator_pl.pdf
  582. @ln -f $< $@
  583. $(DOC_DIR)/EMC2_Developer_Manual.pdf: $(DOC_SRCDIR)/Master_Developer.pdf
  584. @ln -f $< $@
  585.  
  586. $(DOC_DIR)/html/man/%.html: $(DOC_DIR)/man/%
  587. @echo Formatting $(notdir $<) as HTML
  588. @mkdir -p $(dir $@)
  589. @(cd $(DOC_DIR)/man; groff -Thtml -man $(patsubst $(DOC_DIR)/man/%,%,$<)) > $@
  590.  
  591. ST := style=\"-moz-column-width: 25ex; -moz-column-gap: 4ex; list-style-type: none\"
  592.  
  593. objects/index.incl: objects/var-MAN_HTML_TARGETS $(DOC_SRCDIR)/Submakefile
  594. echo "<A NAME=\"man1\"><LI>Commands and userspace components<UL $(ST)>" > $@.tmp
  595. for i in $(filter %.1.html, $(MAN_HTML_TARGETS)); do j=$$(basename $$i .html); echo "<LI><A HREF=\"$${i#$(DOC_DIR)/html/}\">$$j</A>"; done >> $@.tmp
  596. echo "<A NAME=\"man9\"></UL><LI>Realtime components and kernel modules<UL $(ST)>" >> $@.tmp
  597. for i in $(filter %.9.html, $(MAN_HTML_TARGETS)); do j=$$(basename $$i .html); echo "<LI><A HREF=\"$${i#$(DOC_DIR)/html/}\">$$j</A>"; done >> $@.tmp
  598. echo "<A NAME=\"man3hal\"></UL><LI>HAL API calls<UL $(ST)>" >> $@.tmp
  599. for i in $(filter %.3hal.html, $(MAN_HTML_TARGETS)); do j=$$(basename $$i .html); echo "<LI><A HREF=\"$${i#$(DOC_DIR)/html/}\">$$j</A>"; done >> $@.tmp
  600. echo "<A NAME=\"man3rtapi\"></UL><LI>RTAPI calls<UL $(ST)>" >> $@.tmp
  601. for i in $(filter %.3rtapi.html, $(MAN_HTML_TARGETS)); do j=$$(basename $$i .html); echo "<LI><A HREF=\"$${i#$(DOC_DIR)/html/}\">$$j</A>"; done >> $@.tmp
  602. echo "</UL>" >> $@.tmp
  603. mv -f $@.tmp $@
  604.  
  605. $(DOC_DIR)/html/index_%.html: $(DOC_SRCDIR)/index_%.tmpl ../VERSION $(DOC_SRCDIR)/index.foot
  606. cat $(filter-out ../VERSION, $^) | \
  607. sed "s/@VERSION@/`cat ../VERSION`/" > $@
  608.  
  609. $(DOC_DIR)/html/index.html: $(DOC_SRCDIR)/index.tmpl objects/index.incl $(DOC_SRCDIR)/index.foot ../VERSION $(DOC_SRCDIR)/Submakefile
  610. (cat $(DOC_SRCDIR)/index.tmpl objects/index.incl $(DOC_SRCDIR)/index.foot) | sed "s/@VERSION@/`cat ../VERSION`/" > $@
  611.  
  612. $(DOC_SRCDIR)/%.pdf: $(DOC_SRCDIR)/%.txt
  613. $(ECHO) Building $@
  614. @rm -f $@
  615. $(A2X) -L -d book -vf pdf $< || (X=$$?; rm $@; exit $$X)
  616. @test -f $@
  617.  
  618. depends/%.d: $(DOC_SRCDIR)/%.txt $(DOC_SRCDIR)/asciideps
  619. $(ECHO) Depending $<
  620. @mkdir -p $(dir $@)
  621. $(Q)$(DOC_SRCDIR)/asciideps $< > $@.tmp
  622. @mv $@.tmp $@
  623.  
  624. define lyx2xml
  625. python $(DOC_SRCDIR)/lyxtree.py --imagedir=$(DOC_DIR)/html -o objects/$(1)_$(2).xml $(3)
  626. endef
  627.  
  628. XMLDEP := $(DOC_SRCDIR)/lyxtree.py $(DOC_SRCDIR)/lyxparser.py
  629.  
  630. SUBXML := \
  631. $(filter objects/hal_%.xml, $(DOC_TARGETS_XML)) \
  632. $(filter objects/code_%.xml, $(DOC_TARGETS_XML)) \
  633. $(filter objects/common_%.xml, $(DOC_TARGETS_XML)) \
  634. $(filter objects/config_%.xml, $(DOC_TARGETS_XML)) \
  635. $(filter objects/gcode_%.xml, $(DOC_TARGETS_XML)) \
  636. $(filter objects/drivers_%.xml, $(DOC_TARGETS_XML)) \
  637. $(filter objects/gui_%.xml, $(DOC_TARGETS_XML)) \
  638. $(filter objects/install_%.xml, $(DOC_TARGETS_XML)) \
  639. $(filter objects/ladder_%.xml, $(DOC_TARGETS_XML)) \
  640. $(filter objects/lathe_%.xml, $(DOC_TARGETS_XML)) \
  641. $(filter objects/motion_%.xml, $(DOC_TARGETS_XML)) \
  642. $(filter objects/examples_%.xml, $(DOC_TARGETS_XML)) \
  643. $(filter objects/quickstart_%.xml, $(DOC_TARGETS_XML))
  644.  
  645. $(filter-out $(SUBXML),$(DOC_TARGETS_XML)): objects/%.xml: $(DOC_SRCDIR)/%.lyx $(XMLDEP)
  646. python $(DOC_SRCDIR)/lyxtree.py --imagedir=$(DOC_DIR)/html -o objects/$*.xml $<
  647.  
  648. $(filter objects/code_%.xml,$(DOC_TARGETS_XML)): objects/code_%.xml: $(DOC_SRCDIR)/code/%.lyx $(XMLDEP)
  649. $(call lyx2xml,code,$*,$<)
  650. $(filter objects/common_%.xml,$(DOC_TARGETS_XML)): objects/common_%.xml: $(DOC_SRCDIR)/common/%.lyx $(XMLDEP)
  651. $(call lyx2xml,common,$*,$<)
  652. $(filter objects/config_%.xml,$(DOC_TARGETS_XML)): objects/config_%.xml: $(DOC_SRCDIR)/config/%.lyx $(XMLDEP)
  653. $(call lyx2xml,config,$*,$<)
  654. $(filter objects/drivers_%.xml,$(DOC_TARGETS_XML)): objects/drivers_%.xml: $(DOC_SRCDIR)/drivers/%.lyx $(XMLDEP)
  655. $(call lyx2xml,drivers,$*,$<)
  656. $(filter objects/examples_%.xml,$(DOC_TARGETS_XML)): objects/examples_%.xml: $(DOC_SRCDIR)/examples/%.lyx $(XMLDEP)
  657. $(call lyx2xml,examples,$*,$<)
  658. $(filter objects/gcode_%.xml,$(DOC_TARGETS_XML)): objects/gcode_%.xml: $(DOC_SRCDIR)/gcode/%.lyx $(XMLDEP)
  659. $(call lyx2xml,gcode,$*,$<)
  660. $(filter objects/gui_%.xml,$(DOC_TARGETS_XML)): objects/gui_%.xml: $(DOC_SRCDIR)/gui/%.lyx $(XMLDEP)
  661. $(call lyx2xml,gui,$*,$<)
  662. $(filter objects/hal_%.xml,$(DOC_TARGETS_XML)): objects/hal_%.xml: $(DOC_SRCDIR)/hal/%.lyx $(XMLDEP)
  663. $(call lyx2xml,hal,$*,$<)
  664. $(filter objects/install_%.xml,$(DOC_TARGETS_XML)): objects/install_%.xml: $(DOC_SRCDIR)/install/%.lyx $(XMLDEP)
  665. $(call lyx2xml,install,$*,$<)
  666. $(filter objects/ladder_%.xml,$(DOC_TARGETS_XML)): objects/ladder_%.xml: $(DOC_SRCDIR)/ladder/%.lyx $(XMLDEP)
  667. $(call lyx2xml,ladder,$*,$<)
  668. $(filter objects/lathe_%.xml,$(DOC_TARGETS_XML)): objects/lathe_%.xml: $(DOC_SRCDIR)/lathe/%.lyx $(XMLDEP)
  669. $(call lyx2xml,lathe,$*,$<)
  670. $(filter objects/motion_%.xml,$(DOC_TARGETS_XML)): objects/motion_%.xml: $(DOC_SRCDIR)/motion/%.lyx $(XMLDEP)
  671. $(call lyx2xml,motion,$*,$<)
  672. $(filter objects/quickstart_%.xml,$(DOC_TARGETS_XML)): objects/quickstart_%.xml: $(DOC_SRCDIR)/quickstart/%.lyx $(XMLDEP)
  673. $(call lyx2xml,quickstart,$*,$<)
  674.  
  675. DOC_TARGETS_XML_DE := $(filter %_de.xml, $(DOC_TARGETS_XML))
  676. DOC_TARGETS_XML_ES := $(filter %_es.xml, $(DOC_TARGETS_XML))
  677. DOC_TARGETS_XML_FR := $(filter %_fr.xml, $(DOC_TARGETS_XML))
  678. DOC_TARGETS_XML_PL := $(filter %_pl.xml, $(DOC_TARGETS_XML))
  679. DOC_TARGETS_XML_EN := $(filter-out $(DOC_TARGETS_XML_DE), $(filter-out $(DOC_TARGETS_XML_ES), $(filter-out $(DOC_TARGETS_XML_FR), $(filter-out $(DOC_TARGETS_XML_PL), $(DOC_TARGETS_XML)) ) ) )
  680. DOC_TARGETS_HTML_DE := $(filter %_de.html, $(DOC_TARGETS_HTML))
  681. DOC_TARGETS_HTML_ES := $(filter %_es.html, $(DOC_TARGETS_HTML))
  682. DOC_TARGETS_HTML_FR := $(filter %_fr.html, $(DOC_TARGETS_HTML))
  683. DOC_TARGETS_HTML_PL := $(filter %_pl.html, $(DOC_TARGETS_HTML))
  684. DOC_TARGETS_HTML_EN := $(filter-out $(DOC_TARGETS_HTML_DE), $(filter-out $(DOC_TARGETS_HTML_ES), $(filter-out $(DOC_TARGETS_HTML_FR), $(filter-out $(DOC_TARGETS_HTML_PL), $(DOC_TARGETS_HTML)) ) ) )
  685.  
  686. objects/xref_de.xml: $(DOC_TARGETS_XML_DE) $(DOC_SRCDIR)/xref.py
  687. (cd objects; ../../docs/src/xref.py $(filter %.xml, $(patsubst objects/%,%,$^))) > $@
  688. objects/xref_es.xml: $(DOC_TARGETS_XML_ES) $(DOC_SRCDIR)/xref.py
  689. (cd objects; ../../docs/src/xref.py $(filter %.xml, $(patsubst objects/%,%,$^))) > $@
  690. objects/xref_fr.xml: $(DOC_TARGETS_XML_FR) $(DOC_SRCDIR)/xref.py
  691. (cd objects; ../../docs/src/xref.py $(filter %.xml, $(patsubst objects/%,%,$^))) > $@
  692. objects/xref_pl.xml: $(DOC_TARGETS_XML_PL) $(DOC_SRCDIR)/xref.py
  693. (cd objects; ../../docs/src/xref.py $(filter %.xml, $(patsubst objects/%,%,$^))) > $@
  694. objects/xref.xml: $(DOC_TARGETS_XML_EN) $(DOC_SRCDIR)/xref.py
  695. (cd objects; ../../docs/src/xref.py $(filter %.xml, $(patsubst objects/%,%,$^))) > $@
  696.  
  697. #$(DOC_TARGETS_HTML_EN): $(DOC_DIR)/html/%.html: objects/%.xml objects/xref.xml $(DOC_SRCDIR)/l2h.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml
  698. # $(ECHO) Converting $< to HTML
  699. # xsltproc --stringparam xrefdoc objects/xref.xml --stringparam docname "$*" --path objects -o $@ $(DOC_SRCDIR)/l2h.xsl $<
  700. #
  701. #$(DOC_TARGETS_HTML_DE): $(DOC_DIR)/html/%.html: objects/%.xml objects/xref_de.xml $(DOC_SRCDIR)/l2h.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml
  702. # $(ECHO) Converting $< to HTML
  703. # xsltproc --stringparam xrefdoc objects/xref_de.xml --stringparam docname "$*" --path objects -o $@ $(DOC_SRCDIR)/l2h.xsl $<
  704. #
  705. #$(DOC_TARGETS_HTML_ES): $(DOC_DIR)/html/%.html: objects/%.xml objects/xref_es.xml $(DOC_SRCDIR)/l2h.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml
  706. # $(ECHO) Converting $< to HTML
  707. # xsltproc --stringparam xrefdoc objects/xref_es.xml --stringparam docname "$*" --path objects -o $@ $(DOC_SRCDIR)/l2h.xsl $<
  708. #
  709. #$(DOC_TARGETS_HTML_FR): $(DOC_DIR)/html/%.html: objects/%.xml objects/xref_fr.xml $(DOC_SRCDIR)/l2h.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml
  710. # $(ECHO) Converting $< to HTML
  711. # xsltproc --stringparam xrefdoc objects/xref_fr.xml --stringparam docname "$*" --path objects -o $@ $(DOC_SRCDIR)/l2h.xsl $<
  712. #
  713. #$(DOC_TARGETS_HTML_PL): $(DOC_DIR)/html/%.html: objects/%.xml objects/xref_pl.xml $(DOC_SRCDIR)/l2h.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml
  714. # $(ECHO) Converting $< to HTML
  715. # xsltproc --stringparam xrefdoc objects/xref_pl.xml --stringparam docname "$*" --path objects -o $@ $(DOC_SRCDIR)/l2h.xsl $<
  716. #
  717. #$(DOC_DIR)/html/xref.html: objects/xref.xml $(DOC_SRCDIR)/xref.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml
  718. # $(ECHO) Converting $< to HTML
  719. # @xsltproc --stringparam docname "xref" --stringparam language english --path objects -o $@ $(DOC_SRCDIR)/xref.xsl $<
  720.  
  721. objects/%.links-stamp: $(DOC_SRCDIR)/%.txt
  722. @mkdir -p `dirname $@`
  723. asciidoc -d book -o- -b docbook $< | xsltproc $(DOC_SRCDIR)/links.xslt - > $@.tmp || (X=$$?; rm $@; exit $$X)
  724. sh move-if-change $@.tmp $(patsubst %-stamp,%,$@)
  725. touch $@
  726.  
  727. objects/%.links: objects/%.links-stamp
  728. @:
  729.  
  730. # Secondary is not working here.
  731. # See http://www.gnu.org/software/make/manual/make.html#Chained-Rules
  732. .PRECIOUS: objects/%.links-stamp
  733.  
  734. objects/xref_en.links: $(patsubst %.txt,objects/%.links,$(DOC_SRCS_EN_SMALL))
  735. $(PYTHON) $(DOC_SRCDIR)/links_db_gen.py objects/ $^ > $@
  736.  
  737. objects/xref_de.links: $(patsubst %.txt,objects/%.links,$(DOC_SRCS_DE_SMALL))
  738. $(PYTHON) $(DOC_SRCDIR)/links_db_gen.py objects/ $^ > $@
  739.  
  740. objects/xref_es.links: $(patsubst %.txt,objects/%.links,$(DOC_SRCS_ES_SMALL))
  741. $(PYTHON) $(DOC_SRCDIR)/links_db_gen.py objects/ $^ > $@
  742.  
  743. objects/xref_fr.links: $(patsubst %.txt,objects/%.links,$(DOC_SRCS_FR_SMALL))
  744. $(PYTHON) $(DOC_SRCDIR)/links_db_gen.py objects/ $^ > $@
  745.  
  746. objects/xref_pl.links: $(patsubst %.txt,objects/%.links,$(DOC_SRCS_PL_SMALL))
  747. $(PYTHON) $(DOC_SRCDIR)/links_db_gen.py objects/ $^ > $@
  748.  
  749. $(DOC_TARGETS_HTML): $(DOC_DIR)/html/%.html: $(DOC_SRCDIR)/%.html
  750. @d=`dirname $*`; \
  751. for f in $(shell xsltproc --novalid --nonet $(DOC_SRCDIR)/html-images.xslt $<); do\
  752. mkdir -p $(DOC_DIR)/html/$$d/`dirname $$f`; \
  753. cp $(DOC_SRCDIR)/$$d/$$f $(DOC_DIR)/html/$$d/$$f; \
  754. done
  755. mkdir -p $(shell dirname $@)
  756. @cp $< $@
  757. mkdir -p objects/image-cache
  758. HTML_LATEX_CACHE=objects/image-cache $(DOC_SRCDIR)/html-latex-images $@ || \
  759. (X=$$?; rm $@; exit $$X)
  760.  
  761. #$(patsubst %.txt,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_EN_SMALL)): $(DOC_SRCDIR)/%.html: $(DOC_SRCDIR)/%.txt objects/xref_en.links
  762. # asciidoc -f $(DOC_SRCDIR)/xhtml11.conf \
  763. # -a "scriptdir=$(DOC_SRCDIR)/" \
  764. # -a "relindir=$(shell dirname $*)" \
  765. # -a "linksfile=objects/xref_en.links" \
  766. # -a stylesheet=$(shell pwd)/$(DOC_SRCDIR)/linuxcnc.css \
  767. # -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X)
  768.  
  769. $(patsubst %.txt,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_EN_SMALL)): $(DOC_SRCDIR)/%.html: $(DOC_SRCDIR)/%.txt objects/xref_en.links
  770. asciidoc -f $(DOC_SRCDIR)/xhtml11.conf \
  771. -a "scriptdir=$(DOC_SRCDIR)/" \
  772. -a "relindir=$(shell dirname $*)" \
  773. -a "linksfile=objects/xref_en.links" \
  774. -a stylesheet=$(shell pwd)/$(DOC_SRCDIR)/linuxcnc.css \
  775. -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X)
  776.  
  777. $(patsubst %.txt,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_FR_SMALL)): $(DOC_SRCDIR)/%.html: $(DOC_SRCDIR)/%.txt objects/xref_fr.links
  778. asciidoc -f $(DOC_SRCDIR)/xhtml11.conf \
  779. -a "scriptdir=$(DOC_SRCDIR)/" \
  780. -a "relindir=$(shell dirname $*)" \
  781. -a "linksfile=objects/xref_fr.links" \
  782. -a stylesheet=$(shell pwd)/$(DOC_SRCDIR)/linuxcnc.css \
  783. -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X)
  784.  
  785. $(patsubst %.txt,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_PL_SMALL)): $(DOC_SRCDIR)/%.html: $(DOC_SRCDIR)/%.txt objects/xref_pl.links
  786. asciidoc -f $(DOC_SRCDIR)/xhtml11.conf \
  787. -a "scriptdir=$(DOC_SRCDIR)/" \
  788. -a "relindir=$(shell dirname $*)" \
  789. -a "linksfile=objects/xref_pl.links" \
  790. -a stylesheet=$(shell pwd)/$(DOC_SRCDIR)/linuxcnc.css \
  791. -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X)
  792.  
  793. $(patsubst %.txt,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_ES_SMALL)): $(DOC_SRCDIR)/%.html: $(DOC_SRCDIR)/%.txt objects/xref_es.links
  794. asciidoc -f $(DOC_SRCDIR)/xhtml11.conf \
  795. -a "scriptdir=$(DOC_SRCDIR)/" \
  796. -a "relindir=$(shell dirname $*)" \
  797. -a "linksfile=objects/xref_es.links" \
  798. -a stylesheet=$(shell pwd)/$(DOC_SRCDIR)/linuxcnc.css \
  799. -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X)
  800.  
  801. $(patsubst %.txt,$(DOC_SRCDIR)/%.html,$(DOC_SRCS_DE_SMALL)): $(DOC_SRCDIR)/%.html: $(DOC_SRCDIR)/%.txt objects/xref_de.links
  802. asciidoc -f $(DOC_SRCDIR)/xhtml11.conf \
  803. -a "scriptdir=$(DOC_SRCDIR)/" \
  804. -a "relindir=$(shell dirname $*)" \
  805. -a "linksfile=objects/xref_de.links" \
  806. -a stylesheet=$(shell pwd)/$(DOC_SRCDIR)/linuxcnc.css \
  807. -d book -a toc -a numbered -b xhtml11 $< || (X=$$?; rm $@; exit $$X)
  808.  
  809. default: docs
  810. $(DOC_DIR)/html/xref_fr.html: objects/xref_fr.xml $(DOC_SRCDIR)/xref.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml
  811. $(ECHO) Converting $< to HTML
  812. @xsltproc --stringparam docname "xref_fr" --stringparam language french --path objects -o $@ $(DOC_SRCDIR)/xref.xsl $<
  813.  
  814. $(DOC_DIR)/html/xref_es.html: objects/xref_es.xml $(DOC_SRCDIR)/xref.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml
  815. $(ECHO) Converting $< to HTML
  816. @xsltproc --stringparam docname "xref_es" --stringparam language spanish --path objects -o $@ $(DOC_SRCDIR)/xref.xsl $<
  817.  
  818. $(DOC_DIR)/html/xref_de.html: objects/xref_de.xml $(DOC_SRCDIR)/xref.xsl $(DOC_SRCDIR)/docs.xml $(DOC_SRCDIR)/terms.xml
  819. $(ECHO) Converting $< to HTML
  820. @xsltproc --stringparam docname "xref_de" --stringparam language german --path objects -o $@ $(DOC_SRCDIR)/xref.xsl $<
  821.  
  822. default: docs
  823.  
  824. install-doc-pdf:
  825. $(DIR) $(DESTDIR)$(docsdir)
  826. $(FILE) $(PDF_TARGETS) $(DESTDIR)$(docsdir)
  827.  
  828. install-doc-html:
  829. $(DIR) $(DESTDIR)$(docsdir)
  830. cp -a $(DOC_DIR)/html $(DESTDIR)$(docsdir)
  831. install-kernel-indep: install-doc
  832. else
  833. docs:
  834. $(error Cannot build documents, missing LyX or some other required program, or explicitly disabled in configure)
  835.  
  836. endif
  837.  
  838. docclean:
  839. -rm -f $(DOC_DIR)/EMC2_Getting_Started.pdf
  840. -rm -f $(DOC_DIR)/EMC2_Getting_Started_de.pdf
  841. -rm -f $(DOC_DIR)/EMC2_Getting_Started_es.pdf
  842. -rm -f $(DOC_DIR)/EMC2_Getting_Started_fr.pdf
  843. -rm -f $(DOC_DIR)/EMC2_Getting_Started_pl.pdf
  844. -rm -f $(DOC_DIR)/EMC2_User_Manual.pdf
  845. -rm -f $(DOC_DIR)/EMC2_User_Manual_de.pdf
  846. -rm -f $(DOC_DIR)/EMC2_User_Manual_es.pdf
  847. -rm -f $(DOC_DIR)/EMC2_User_Manual_fr.pdf
  848. -rm -f $(DOC_DIR)/EMC2_User_Manual_pl.pdf
  849. -rm -f $(DOC_DIR)/EMC2_HAL_Manual.pdf
  850. -rm -f $(DOC_DIR)/EMC2_HAL_Manual_de.pdf
  851. -rm -f $(DOC_DIR)/EMC2_HAL_Manual_es.pdf
  852. -rm -f $(DOC_DIR)/EMC2_HAL_Manual_fr.pdf
  853. -rm -f $(DOC_DIR)/EMC2_HAL_Manual_pl.pdf
  854. -rm -f $(DOC_DIR)/EMC2_Integrator_Manual.pdf
  855. -rm -f $(DOC_DIR)/EMC2_Integrator_Manual_de.pdf
  856. -rm -f $(DOC_DIR)/EMC2_Integrator_Manual_es.pdf
  857. -rm -f $(DOC_DIR)/EMC2_Integrator_Manual_fr.pdf
  858. -rm -f $(DOC_DIR)/EMC2_Integrator_Manual_pl.pdf
  859. -rm -f $(DOC_DIR)/EMC2_Developer_Manual.pdf
  860. -rm -f $(DOC_DIR)/EMC2_Manual_Pages.pdf
  861. -rm -f $(DOC_SRCDIR)/*.d
  862. -rm -f $(DOC_SRCDIR)/*.pdf
  863. -rm -f $(DOC_TARGETS_HTML) $(DOC_DIR)/html/xref*.html $(DOC_DIR)/html/index*.html $(DOC_DIR)/*.png $(DOC_DIR)/man/*.png
  864.  
  865. MAN_DEPS := $(patsubst $(DOC_DIR)/man/%, depends/%.d, $(MAN_SRCS))
  866. $(MAN_DEPS): depends/%.d: $(DOC_DIR)/man/%
  867. @echo Depending $(notdir $<)
  868. @mkdir -p $(dir $@)
  869. $(Q)echo -n "$(DOC_DIR)/html/man/$*.html: $<" > $@.tmp
  870. $(Q)grep '^\.so ' $< | awk '{printf " \\\n\t$(DOC_DIR)/man/%s", $$2}' >> $@.tmp
  871. $(Q)echo >> $@.tmp
  872. $(Q)mv -f $@.tmp $@
  873.  
  874. ifeq ($(TRIVIAL_BUILD),no)
  875. -include $(MAN_DEPS)
  876. Makefile: $(MAN_DEPS)
  877. endif
  878.  
  879. %.png:; $(error Required image file $@ does not exist)
  880. %.jpg:; $(error Required image file $@ does not exist)
  881. %.svg:; $(error Required image file $@ does not exist)
  882. %.dxf:; $(error Required image file $@ does not exist)
  883. %.ps:; $(error Required image file $@ does not exist)
  884. %.eps:; $(error Required image file $@ does not exist)
  885.  
  886.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement