diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 000000000..9e12b47a1
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,81 @@
+# http://ros.org/doc/groovy/api/catkin/html/user_guide/supposed.html
+cmake_minimum_required(VERSION 2.8.3)
+project(euslisp)
+
+# check arch and os
+execute_process(COMMAND bash -c "gcc -dumpmachine" OUTPUT_VARIABLE gcc_dump_machine OUTPUT_STRIP_TRAILING_WHITESPACE)
+message("-- gcc dumpmachine returns ${gcc_dump_machine}")
+if(gcc_dump_machine MATCHES "x86_64-linux-.*" OR gcc_dump_machine MATCHES "x86_64-redhat-linux")
+ set(ARCHDIR "Linux64")
+ set(MAKEFILE "Makefile.Linux64")
+elseif(gcc_dump_machine MATCHES "i686-linux-.*" OR gcc_dump_machine MATCHES "i686-redhat-linux")
+ set(ARCHDIR "Linux")
+ set(MAKEFILE "Makefile.Linux.thread")
+elseif(gcc_dump_machine MATCHES "arm.*-.*")
+ set(ARCHDIR "LinuxARM")
+ set(MAKEFILE "Makefile.LinuxARM")
+elseif(gcc_dump_machine MATCHES "aarch64.*-.*")
+ set(ARCHDIR "LinuxARM")
+ set(MAKEFILE "Makefile.LinuxARM")
+elseif(gcc_dump_machine MATCHES "cygwin.*-.*")
+ set(ARCHDIR "Cygwin")
+ set(MAKEFILE "Makefile.Cygwin")
+elseif(gcc_dump_machine MATCHES ".*darwin.*")
+ set(ARCHDIR "Darwin")
+ set(MAKEFILE "Makefile.Darwin")
+else()
+ message(FATAL_ERROR "-- -- This machine is not supported")
+endif()
+message(STATUS "ARCHDIR : ${ARCHDIR}")
+message(STATUS "MAKEFILE : ${MAKEFILE}")
+
+# build euslisp
+add_custom_command(OUTPUT ${PROJECT_SOURCE_DIR}/lisp/Makefile
+ COMMAND cmake -E create_symlink ${MAKEFILE} Makefile
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/lisp/)
+add_custom_target(compile_euslisp
+ DEPENDS ${PROJECT_SOURCE_DIR}/lisp/Makefile
+ COMMAND export EUSDIR=${PROJECT_SOURCE_DIR} lt_cv_sys_lib_dlsearch_path_spec=${lt_cv_sys_lib_dlsearch_path_spec} LD_LIBRARY_PATH=${PROJECT_SOURCE_DIR}/${ARCHDIR}/lib:\$LD_LIBRARY_PATH && \$\(MAKE\) -C ${PROJECT_SOURCE_DIR}/lisp -f Makefile EUSRPATH=)
+add_custom_target(clean_euslisp
+ DEPENDS compile_euslisp
+ COMMAND sh tool/clean-ch.sh
+ COMMAND rm -f l/constants.l.[co] l/eusstart.l.[co] comp/builtins.l.[co] c/makedate.c
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/lisp)
+add_custom_target(doc_euslisp
+ DEPENDS compile_euslisp
+ COMMAND make -C latex manual clean
+ COMMAND make -C jlatex all clean
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/doc)
+add_custom_target(build_euslisp ALL
+ DEPENDS compile_euslisp doc_euslisp
+ clean_euslisp)
+
+# catkin
+find_package(catkin)
+set(ENV{ARCHDIR} ${ARCHDIR}) ## for add_env_hook
+catkin_package(CFG_EXTRAS euslisp-extras.cmake)
+catkin_add_env_hooks(99.euslisp SHELLS sh DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/env-hooks)
+
+# install
+install(DIRECTORY contrib lib lisp models ${ARCHDIR}
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+ USE_SOURCE_PERMISSIONS)
+install(CODE "message(STATUS \"execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink lisp/c include WORKING_DIRECTORY \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION})\")")
+install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink lisp/c include WORKING_DIRECTORY \$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION})")
+install(CODE "execute_process(COMMAND make html WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/doc/latex)")
+install(CODE "execute_process(COMMAND make html WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/doc/jlatex)")
+install(DIRECTORY doc
+ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
+ USE_SOURCE_PERMISSIONS
+ FILES_MATCHING PATTERN "doc/*/*.{pdf,hlp}"
+ PATTERN "doc/html/*"
+ PATTERN "doc/algorithm" EXCLUDE
+ PATTERN "licence-old" EXCLUDE
+ PATTERN "doc/mails" EXCLUDE
+ PATTERN "doc/hirukawa" EXCLUDE
+ PATTERN "doc/help.cltl" EXCLUDE
+ PATTERN "doc/help.eus" EXCLUDE
+ PATTERN "doc/publications" EXCLUDE
+ PATTERN "doc/latex/fig" EXCLUDE
+ PATTERN "doc/jlatex/fig" EXCLUDE
+ )
diff --git a/cmake/euslisp-extras.cmake.em b/cmake/euslisp-extras.cmake.em
new file mode 100644
index 000000000..aadd467ad
--- /dev/null
+++ b/cmake/euslisp-extras.cmake.em
@@ -0,0 +1,12 @@
+# euslisp.cmake
+@[if DEVELSPACE]@
+set(EUSDIR @(PROJECT_SOURCE_DIR))
+@[else]@
+set(EUSDIR @(CMAKE_INSTALL_PREFIX)/@(CATKIN_PACKAGE_SHARE_DESTINATION))
+@[end if]@
+set(ARCHDIR @{import os; print(os.environ['ARCHDIR']),})
+set(euslisp_INCLUDE_DIRS ${EUSDIR}/include)
+message(STATUS "set EUSDIR to ${EUSDIR}")
+message(STATUS "set ARCHDIR to ${ARCHDIR}")
+message(STATUS "set euslisp_INCLUDE_DIRS to ${euslisp_INCLUDE_DIRS}")
+
diff --git a/doc/jlatex/Makefile b/doc/jlatex/Makefile
index b088d0939..7494e4a52 100644
--- a/doc/jlatex/Makefile
+++ b/doc/jlatex/Makefile
@@ -1,17 +1,18 @@
all:
- make toc dvi pdf
+ make jmanual.toc jmanual.dvi jmanual.pdf
-toc:
+jmanual.toc: jmanual.tex
makeindex jmanual.tex
-dvi:
+
+jmanual.dvi: $(wildcard *.tex)
platex --version | grep utf8 || nkf --in-place -e *.tex
platex jmanual.tex
platex jmanual.tex
platex --version | grep utf8 || nkf --in-place -u *.tex
-pdf:
+jmanual.pdf: jmanual.dvi
dvipdfmx jmanual.dvi
@@ -24,7 +25,7 @@ distclean: clean
html:
rm -f ../html/jmanual*.
TRANSPARENT_COLOR="#ffffff" charset="UTF-8" latex2html -dir ../html/ -transparent -local_icons -split +3 -auto_prefix -init_file ../latex/.latex2html-init -iso_language JP jmanual
- (cd ../html; sed -i 's@"jmanual.css"@"manual.css"@' j*.html)
+ (cd ../html; sed -i 's@"jmanual.css">@"manual.css">@' j*.html)
diff --git a/doc/latex/Makefile b/doc/latex/Makefile
index 375ccb760..fc682d3a5 100644
--- a/doc/latex/Makefile
+++ b/doc/latex/Makefile
@@ -1,4 +1,5 @@
-manual: arith.tex contact.tex controls.tex evaluation.tex generals.tex \
+manual: manual.pdf
+manual.pdf: arith.tex contact.tex controls.tex evaluation.tex generals.tex \
geometry.tex graphics.tex image.tex intro.tex \
io.tex manipulator.tex manual.tex \
mars-pre.tex matrix.tex methods.tex mthread.tex objects.tex \
@@ -10,6 +11,9 @@ manual2:
latex manual ; dvips -o manual.ps manual.pdf
# latex manual ; dvi2ps manual.dvi >manual.ps
+clean:
+ rm -f *~ *.aux *.log *.toc *.out *.ind *.ilg manual.idx
+
html:
rm -f ../html/manual*.{old,html,png,pl} ../html/manual-images.*
TRANSPARENT_COLOR="#ffffff" latex2html -dir ../html/ -transparent -local_icons -split +3 -auto_prefix -iso_language JP manual
diff --git a/env-hooks/99.euslisp.sh.em b/env-hooks/99.euslisp.sh.em
new file mode 100644
index 000000000..3ae0fc905
--- /dev/null
+++ b/env-hooks/99.euslisp.sh.em
@@ -0,0 +1,9 @@
+export ARCHDIR="@{import os; print(os.environ['ARCHDIR']),}"
+@[if DEVELSPACE]@
+export EUSDIR="@(PROJECT_SOURCE_DIR)"
+@[else]@
+export EUSDIR="@(CMAKE_INSTALL_PREFIX)/@(CATKIN_PACKAGE_SHARE_DESTINATION)"
+@[end if]@
+export LD_LIBRARY_PATH=$EUSDIR/$ARCHDIR/lib:$LD_LIBRARY_PATH
+export PATH=$EUSDIR/$ARCHDIR/bin:$PATH
+
diff --git a/package.xml b/package.xml
new file mode 100644
index 000000000..1e865315e
--- /dev/null
+++ b/package.xml
@@ -0,0 +1,41 @@
+
+ euslisp
+ 9.23.0
+ EusLisp is an integrated programming system for the
+ research on intelligent robots based on Common Lisp and
+ Object-Oriented programming
+ Kei Okada
+
+ BSD
+
+ http://euslisp.github.io/EusLisp/manual.html
+ https://github.com/euslisp/EusLisp/issues
+
+ Toshihiro Matsui
+
+ catkin
+
+ opengl
+ libjpeg
+ libx11-dev
+ libxext
+ libpng12-dev
+ libpq-dev
+ cmake_modules
+ mk
+ xfonts-100dpi
+ xfonts-75dpi
+
+ opengl
+ libjpeg
+ libx11-dev
+ libxext
+ libpng12-dev
+ libpq-dev
+ xfonts-100dpi
+ xfonts-75dpi
+
+
+
+
+