summaryrefslogtreecommitdiff
path: root/cmd-line-utils/libedit
diff options
context:
space:
mode:
Diffstat (limited to 'cmd-line-utils/libedit')
-rw-r--r--cmd-line-utils/libedit/CMakeLists.txt191
-rw-r--r--cmd-line-utils/libedit/Makefile.am96
2 files changed, 191 insertions, 96 deletions
diff --git a/cmd-line-utils/libedit/CMakeLists.txt b/cmd-line-utils/libedit/CMakeLists.txt
new file mode 100644
index 00000000000..c488fa34512
--- /dev/null
+++ b/cmd-line-utils/libedit/CMakeLists.txt
@@ -0,0 +1,191 @@
+# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_SOURCE_DIR} )
+INCLUDE(CheckIncludeFile)
+include(CheckFunctionExists)
+CHECK_INCLUDE_FILES(term.h HAVE_TERM_H)
+
+SET(CMAKE_REQUIRED_LIBRARIES ${CURSES_LIBRARY})
+CHECK_CXX_SOURCE_COMPILES("
+#include <term.h>
+int main()
+{
+ tgoto(0,0,0);
+ return 0;
+}" HAVE_DECL_TGOTO)
+IF(NOT HAVE_DECL_TGOTO)
+ # On Solaris 11, term.h is broken, curses.h is also required.
+ CHECK_CXX_SOURCE_COMPILES("
+ #include <curses.h>
+ #include <term.h>
+ int main()
+ {
+ tgoto(0,0,0);
+ return 0;
+ }" HAVE_DECL_TGOTO2)
+ IF(HAVE_DECL_TGOTO2)
+ SET(HAVE_DECL_TGOTO 1 CACHE INTERNAL "" FORCE)
+ ENDIF()
+ENDIF()
+
+SET(CMAKE_REQUIRED_LIBRARIES)
+
+
+
+IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+ #On Solaris, default awk is next to unusable while the xpg4 one is ok.
+ IF(EXISTS /usr/xpg4/bin/awk)
+ SET(AWK_EXECUTABLE /usr/xpg4/bin/awk)
+ ENDIF()
+ELSEIF(CMAKE_SYSTEM_NAME STREQUAL "OS400")
+ #Workaround for cases, where /usr/bin/gawk is not executable
+ IF(EXISTS /QOpenSys/usr/bin/awk)
+ SET(AWK_EXECUTABLE /QOpenSys/usr/bin/awk)
+ ENDIF()
+ENDIF()
+
+IF(NOT AWK_EXECUTABLE)
+ FIND_PROGRAM(AWK_EXECUTABLE NAMES gawk awk DOC "path to the awk executable")
+ENDIF()
+
+MARK_AS_ADVANCED(AWK_EXECUTABLE)
+SET(AWK ${AWK_EXECUTABLE})
+CONFIGURE_FILE(makelist.sh ${CMAKE_CURRENT_BINARY_DIR}/makelist @ONLY)
+
+include(CheckIncludeFile)
+
+CHECK_INCLUDE_FILE(vis.h HAVE_VIS_H)
+IF(HAVE_VIS_H)
+ CHECK_FUNCTION_EXISTS(strvis HAVE_STRVIS)
+ IF(NOT HAVE_STRVIS)
+ SET(HAVE_VIS_H FALSE CACHE INTERNAL "" FORCE)
+ ENDIF()
+ENDIF()
+
+CHECK_FUNCTION_EXISTS(strvis HAVE_STRVIS)
+IF(NOT HAVE_STRVIS)
+ SET(LIBEDIT_EXTRA_SOURCES ${LIBEDIT_EXTRA_SOURCES} np/vis.c)
+ENDIF()
+
+CHECK_FUNCTION_EXISTS(strunvis HAVE_STRUNVIS)
+IF(NOT HAVE_STRUNVIS)
+ SET(LIBEDIT_EXTRA_SOURCES ${LIBEDIT_EXTRA_SOURCES} np/unvis.c)
+ENDIF()
+
+CHECK_FUNCTION_EXISTS(strlcpy HAVE_STRLCPY)
+IF(NOT HAVE_STRLCPY)
+ SET(LIBEDIT_EXTRA_SOURCES ${LIBEDIT_EXTRA_SOURCES} np/strlcpy.c)
+ENDIF()
+
+CHECK_FUNCTION_EXISTS(strlcat HAVE_STRLCAT)
+IF(NOT HAVE_STRLCAT)
+ SET(LIBEDIT_EXTRA_SOURCES ${LIBEDIT_EXTRA_SOURCES} np/strlcat.c)
+ENDIF()
+
+CHECK_FUNCTION_EXISTS(fgetln HAVE_FGETLN)
+IF(NOT HAVE_FGETLN)
+ SET(LIBEDIT_EXTRA_SOURCES ${LIBEDIT_EXTRA_SOURCES} np/fgetln.c)
+ENDIF()
+
+CHECK_FUNCTION_EXISTS(fgetln HAVE_WCSDUP)
+IF(NOT HAVE_WCSDUP)
+ SET(LIBEDIT_EXTRA_SOURCES ${LIBEDIT_EXTRA_SOURCES} np/wcsdup.c)
+ENDIF()
+
+# Generate headers
+FOREACH(SRCBASENAME vi emacs common)
+ SET(SRC ${CMAKE_CURRENT_SOURCE_DIR}/${SRCBASENAME}.c)
+ SET(HDR ${CMAKE_CURRENT_BINARY_DIR}/${SRCBASENAME}.h)
+
+ ADD_CUSTOM_COMMAND(
+ OUTPUT ${HDR}
+ COMMAND sh ./makelist -h ${SRC} > ${HDR}
+ DEPENDS ${SRC})
+
+ SET(AHDR ${AHDR} ${HDR})
+ SET(ASRC ${ASRC} ${SRC})
+ENDFOREACH()
+
+# Generate source files
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/help.c
+ COMMAND sh ./makelist -bc ${ASRC} > help.c
+ DEPENDS ${ASRC}
+)
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/help.h
+ COMMAND sh ./makelist -bh ${ASRC} > help.h
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ DEPENDS ${ASRC}
+)
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/fcns.h
+ COMMAND sh ./makelist -fh ${AHDR} > fcns.h
+ VERBATIM
+ DEPENDS ${AHDR}
+)
+
+ADD_CUSTOM_COMMAND(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/fcns.c
+ COMMAND sh ./makelist -fc ${AHDR} > fcns.c
+ VERBATIM
+ DEPENDS ${AHDR}
+)
+
+
+INCLUDE_DIRECTORIES(
+${CMAKE_SOURCE_DIR}/include
+${CMAKE_CURRENT_BINARY_DIR}
+${CURSES_INCLUDE_PATH}
+)
+
+SET(LIBEDIT_SOURCES
+ chared.c
+ chartype.c
+ el.c
+ eln.c
+ history.c
+ historyn.c
+ map.c
+ prompt.c
+ readline.c
+ search.c
+ tokenizer.c
+ tokenizern.c
+ vi.c
+ common.c
+ emacs.c
+ hist.c
+ keymacro.c
+ parse.c
+ read.c
+ refresh.c
+ sig.c
+ terminal.c
+ tty.c
+ filecomplete.c
+ ${CMAKE_CURRENT_BINARY_DIR}/help.c
+ ${CMAKE_CURRENT_BINARY_DIR}/help.h
+ ${CMAKE_CURRENT_BINARY_DIR}/fcns.c
+ ${CMAKE_CURRENT_BINARY_DIR}/fcns.h
+ ${AHDR}
+ ${LIBEDIT_EXTRA_SOURCES}
+)
+ADD_LIBRARY(edit ${LIBEDIT_SOURCES})
+TARGET_LINK_LIBRARIES(edit ${CURSES_LIBRARY})
+
diff --git a/cmd-line-utils/libedit/Makefile.am b/cmd-line-utils/libedit/Makefile.am
deleted file mode 100644
index b68eca7f44a..00000000000
--- a/cmd-line-utils/libedit/Makefile.am
+++ /dev/null
@@ -1,96 +0,0 @@
-## Process this file with automake to create Makefile.in
-
-ASRC = $(srcdir)/vi.c $(srcdir)/emacs.c $(srcdir)/common.c
-AHDR = vi.h emacs.h common.h
-
-INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include
-
-noinst_LIBRARIES = libedit.a
-
-libedit_a_SOURCES = chared.c el.c eln.c history.c historyn.c map.c prompt.c chartype.c \
- readline.c search.c tokenizer.c tokenizern.c vi.c common.c emacs.c \
- hist.c keymacro.c parse.c read.c refresh.c sig.c terminal.c \
- tty.c help.c fcns.c filecomplete.c \
- np/unvis.c np/strlcpy.c np/vis.c np/strlcat.c \
- np/fgetln.c np/wcsdup.c
-
-libedit_a_LIBADD = @LIBEDIT_LOBJECTS@
-libedit_a_DEPENDENCIES = @LIBEDIT_LOBJECTS@
-
-pkginclude_HEADERS = readline/readline.h
-
-noinst_HEADERS = chared.h chartype.h el.h el_terminal.h histedit.h keymacro.h parse.h \
- refresh.h sig.h sys.h config.h hist.h map.h prompt.h read.h \
- search.h tty.h filecomplete.h np/vis.h
-
-EXTRA_DIST = makelist.sh
-
-CLEANFILES = makelist common.h emacs.h vi.h fcns.h help.h fcns.c help.c
-
-SUFFIXES = .sh
-
-.sh:
- @RM@ -f $@ $@-t
- @SED@ \
- -e 's!@''AWK''@!@AWK@!' \
- $< > $@-t
- @MV@ $@-t $@
-
-vi.h: $(srcdir)/vi.c makelist
- sh ./makelist -h $(srcdir)/vi.c > $@.tmp && \
- mv $@.tmp $@
-
-emacs.h: $(srcdir)/emacs.c makelist
- sh ./makelist -h $(srcdir)/emacs.c > $@.tmp && \
- mv $@.tmp $@
-
-common.h: $(srcdir)/common.c makelist
- sh ./makelist -h $(srcdir)/common.c > $@.tmp && \
- mv $@.tmp $@
-
-help.c: ${ASRC} makelist
- sh ./makelist -bc ${ASRC} > $@.tmp && \
- mv $@.tmp $@
-
-help.h: ${ASRC} makelist
- sh ./makelist -bh ${ASRC} > $@.tmp && \
- mv $@.tmp $@
-
-fcns.h: ${AHDR} makelist
- sh ./makelist -fh ${AHDR} > $@.tmp && \
- mv $@.tmp $@
-
-fcns.c: ${AHDR} fcns.h makelist
- sh ./makelist -fc ${AHDR} > $@.tmp && \
- mv $@.tmp $@
-
-#%.o: vi.h emacs.h common.h help.h fcns.h
-#objects := $(patsubst %.c,%.o,$(wildcard *.c))
-#$(objects): vi.h emacs.h
-
-chared.o: vi.h emacs.h common.h help.h fcns.h
-el.o: vi.h emacs.h common.h help.h fcns.h
-eln.o: vi.h emacs.h common.h help.h fcns.h
-history.o: vi.h emacs.h common.h help.h fcns.h
-historyn.o: vi.h emacs.h common.h help.h fcns.h
-map.o: vi.h emacs.h common.h help.h fcns.h
-chartype.o: vi.h emacs.h common.h help.h fcns.h
-prompt.o: vi.h emacs.h common.h help.h fcns.h
-readline.o: vi.h emacs.h common.h help.h fcns.h
-search.o: vi.h emacs.h common.h help.h fcns.h
-tokenizer.o: vi.h emacs.h common.h help.h fcns.h
-tokenizern.o: vi.h emacs.h common.h help.h fcns.h
-vi.o: vi.h emacs.h common.h help.h fcns.h
-common.o: vi.h emacs.h common.h help.h fcns.h
-emacs.o: vi.h emacs.h common.h help.h fcns.h
-hist.o: vi.h emacs.h common.h help.h fcns.h
-keymacro.o: vi.h emacs.h common.h help.h fcns.h
-parse.o: vi.h emacs.h common.h help.h fcns.h
-read.o: vi.h emacs.h common.h help.h fcns.h
-refresh.o: vi.h emacs.h common.h help.h fcns.h
-sig.o: vi.h emacs.h common.h help.h fcns.h
-terminal.o: vi.h emacs.h common.h help.h fcns.h
-tty.o: vi.h emacs.h common.h help.h fcns.h
-help.o: vi.h emacs.h common.h help.h fcns.h
-fcns.o: vi.h emacs.h common.h help.h fcns.h
-filecomplete.o: vi.h emacs.h common.h help.h fcns.h