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 + + + + +