replace readline cmake with equivalent pkg-config call
This commit is contained in:
parent
c9da23c2ee
commit
708f3c2d67
8
Makefile
8
Makefile
|
@ -26,19 +26,20 @@ CONTRIB_DOCS = $(wildcard contrib/*/docs/*.rst)
|
||||||
|
|
||||||
CFLAGS += -I./extlib/benz/include
|
CFLAGS += -I./extlib/benz/include
|
||||||
# CFLAGS += -std=c89 -ansi -pedantic
|
# CFLAGS += -std=c89 -ansi -pedantic
|
||||||
|
LDFLAGS += -lm
|
||||||
|
|
||||||
prefix = /usr/local
|
prefix = /usr/local
|
||||||
|
|
||||||
all: CFLAGS += -O2 -Wall -Wextra
|
all: CFLAGS += -O2 -Wall -Wextra
|
||||||
all: bin/picrin
|
all: bin/picrin
|
||||||
|
|
||||||
include contrib/*/nitro.mk # nitros define test-foo targets
|
include contrib/*/nitro.mk
|
||||||
|
|
||||||
debug: CFLAGS += -O0 -g -DDEBUG=1
|
debug: CFLAGS += -O0 -g -DDEBUG=1
|
||||||
debug: bin/picrin
|
debug: bin/picrin
|
||||||
|
|
||||||
bin/picrin: $(PICRIN_OBJS) $(CONTRIB_OBJS) lib/libbenz.a
|
bin/picrin: $(PICRIN_OBJS) $(CONTRIB_OBJS) lib/libbenz.a
|
||||||
$(CC) $(CFLAGS) -o $@ $(PICRIN_OBJS) $(CONTRIB_OBJS) lib/libbenz.a -lm
|
$(CC) $(CFLAGS) -o $@ $(PICRIN_OBJS) $(CONTRIB_OBJS) lib/libbenz.a $(LDFLAGS)
|
||||||
|
|
||||||
src/load_piclib.c: $(PICRIN_LIBS) $(CONTRIB_LIBS)
|
src/load_piclib.c: $(PICRIN_LIBS) $(CONTRIB_LIBS)
|
||||||
perl etc/mkloader.pl $(PICRIN_LIBS) $(CONTRIB_LIBS) > $@
|
perl etc/mkloader.pl $(PICRIN_LIBS) $(CONTRIB_LIBS) > $@
|
||||||
|
@ -49,8 +50,7 @@ src/init_contrib.c:
|
||||||
lib/libbenz.a: $(BENZ_OBJS)
|
lib/libbenz.a: $(BENZ_OBJS)
|
||||||
$(AR) $(ARFLAGS) $@ $(BENZ_OBJS)
|
$(AR) $(ARFLAGS) $@ $(BENZ_OBJS)
|
||||||
|
|
||||||
%.o: %.c extlib/benz/include/picrin.h extlib/benz/include/picrin/*.h
|
%.o: extlib/benz/include/picrin.h extlib/benz/include/picrin/*.h
|
||||||
$(CC) $(CFLAGS) -c -o $@ $<
|
|
||||||
|
|
||||||
doc: docs/*.rst docs/contrib.rst
|
doc: docs/*.rst docs/contrib.rst
|
||||||
$(MAKE) -C docs html
|
$(MAKE) -C docs html
|
||||||
|
|
|
@ -1,17 +0,0 @@
|
||||||
# readline
|
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/contrib/10.readline/cmake/")
|
|
||||||
|
|
||||||
find_package(Libedit)
|
|
||||||
if (Libedit_FOUND)
|
|
||||||
add_definitions(${Libedit_DEFINITIONS} -DPIC_READLINE_FOUND=1 -DPIC_READLINE_INCLUDE_DIR_SUFFIX=${Libedit_INCLUDE_DIR_SUFFIX})
|
|
||||||
include_directories(${Libedit_INCLUDE_DIR})
|
|
||||||
|
|
||||||
file(GLOB PICRIN_READLINE_SOURCES ${PROJECT_SOURCE_DIR}/contrib/10.readline/src/*.c)
|
|
||||||
|
|
||||||
list(APPEND PICRIN_CONTRIB_INITS readline)
|
|
||||||
list(APPEND PICRIN_CONTRIB_LIBRARIES ${Libedit_LIBRARIES})
|
|
||||||
list(APPEND PICRIN_CONTRIB_SOURCES ${PICRIN_READLINE_SOURCES})
|
|
||||||
add_custom_target(test-readline for test in ${PROJECT_SOURCE_DIR}/contrib/10.readline/t/*.scm \; do bin/picrin "$$test" \; done DEPENDS repl)
|
|
||||||
set(CONTRIB_TESTS ${CONTRIB_TESTS} test-readline)
|
|
||||||
endif(Libedit_FOUND)
|
|
|
@ -1,107 +0,0 @@
|
||||||
# - Try to find libedit
|
|
||||||
# Once done this will define
|
|
||||||
#
|
|
||||||
# Libedit_FOUND - system has libedit
|
|
||||||
# Libedit_INCLUDE_DIRS - the libedit include directory
|
|
||||||
# Libedit_LIBRARIES - Link these to use libedit
|
|
||||||
# Libedit_DEFINITIONS - Compiler switches required for using libedit
|
|
||||||
#
|
|
||||||
# Copyright (c) 2014 Yuichi Nishiwaki <yuichi@idylls.jp>
|
|
||||||
# Copyright (c) 2008 Andreas Schneider <mail@cynapses.org>
|
|
||||||
# Modified for other libraries by Lasse Kärkkäinen <tronic>
|
|
||||||
#
|
|
||||||
# Redistribution and use is allowed according to the terms of the New
|
|
||||||
# BSD license.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
if (Libedit_LIBRARIES AND Libedit_INCLUDE_DIRS)
|
|
||||||
# in cache already
|
|
||||||
set(Libedit_FOUND TRUE)
|
|
||||||
else (Libedit_LIBRARIES AND Libedit_INCLUDE_DIRS)
|
|
||||||
# use pkg-config to get the directories and then use these values
|
|
||||||
# in the FIND_PATH() and FIND_LIBRARY() calls
|
|
||||||
if (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
|
|
||||||
include(UsePkgConfig)
|
|
||||||
pkgconfig(libedit _Libedit_INCLUDEDIR _Libedit_LIBDIR _Libedit_LDFLAGS _Libedit_CFLAGS)
|
|
||||||
else (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
|
|
||||||
find_package(PkgConfig)
|
|
||||||
if (PKG_CONFIG_FOUND)
|
|
||||||
pkg_check_modules(_LIBEDIT libedit)
|
|
||||||
endif (PKG_CONFIG_FOUND)
|
|
||||||
endif (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
|
|
||||||
find_path(Libedit_EDITLINE_INCLUDE_DIR
|
|
||||||
NAMES
|
|
||||||
editline/readline.h
|
|
||||||
editline/history.h
|
|
||||||
PATHS
|
|
||||||
${_Libedit_INCLUDEDIR}
|
|
||||||
/usr/include
|
|
||||||
/usr/local/include
|
|
||||||
/opt/local/include
|
|
||||||
/sw/include
|
|
||||||
)
|
|
||||||
if (Libedit_EDITLINE_INCLUDE_DIR)
|
|
||||||
set(Libedit_INCLUDE_DIR_SUFFIX editline)
|
|
||||||
set(Libedit_INCLUDE_DIR ${Libedit_EDITLINE_INCLUDE_DIR})
|
|
||||||
else (Libedit_EDITLINE_INCLUDE_DIR)
|
|
||||||
find_path(Libedit_READLINE_INCLUDE_DIR
|
|
||||||
NAMES
|
|
||||||
readline/readline.h
|
|
||||||
readline/history.h
|
|
||||||
PATHS
|
|
||||||
/usr/include/edit
|
|
||||||
/usr/local/include/edit
|
|
||||||
/opt/local/include/edit
|
|
||||||
/sw/include/edit
|
|
||||||
)
|
|
||||||
if (Libedit_READLINE_INCLUDE_DIR)
|
|
||||||
set(Libedit_INCLUDE_DIR_SUFFIX readline)
|
|
||||||
set(Libedit_INCLUDE_DIR ${Libedit_READLINE_INCLUDE_DIR})
|
|
||||||
endif (Libedit_READLINE_INCLUDE_DIR)
|
|
||||||
endif (Libedit_EDITLINE_INCLUDE_DIR)
|
|
||||||
|
|
||||||
find_library(Libedit_LIBRARY
|
|
||||||
NAMES
|
|
||||||
edit
|
|
||||||
PATHS
|
|
||||||
${_Libedit_LIBDIR}
|
|
||||||
/usr/lib
|
|
||||||
/usr/local/lib
|
|
||||||
/opt/local/lib
|
|
||||||
/sw/lib
|
|
||||||
)
|
|
||||||
|
|
||||||
if (Libedit_LIBRARY)
|
|
||||||
set(Libedit_FOUND TRUE)
|
|
||||||
endif (Libedit_LIBRARY)
|
|
||||||
|
|
||||||
set(Libedit_INCLUDE_DIRS
|
|
||||||
${Libedit_INCLUDE_DIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
if (Libedit_FOUND)
|
|
||||||
set(Libedit_LIBRARIES
|
|
||||||
${Libedit_LIBRARIES}
|
|
||||||
${Libedit_LIBRARY}
|
|
||||||
)
|
|
||||||
endif (Libedit_FOUND)
|
|
||||||
|
|
||||||
if (Libedit_INCLUDE_DIRS AND Libedit_LIBRARIES)
|
|
||||||
set(Libedit_FOUND TRUE)
|
|
||||||
endif (Libedit_INCLUDE_DIRS AND Libedit_LIBRARIES)
|
|
||||||
|
|
||||||
if (Libedit_FOUND)
|
|
||||||
if (NOT Libedit_FIND_QUIETLY)
|
|
||||||
message(STATUS "Found libedit: ${Libedit_LIBRARY}, ${Libedit_INCLUDE_DIR}")
|
|
||||||
endif (NOT Libedit_FIND_QUIETLY)
|
|
||||||
else (Libedit_FOUND)
|
|
||||||
if (Libedit_FIND_REQUIRED)
|
|
||||||
message(FATAL_ERROR "Could not find libedit")
|
|
||||||
endif (Libedit_FIND_REQUIRED)
|
|
||||||
endif (Libedit_FOUND)
|
|
||||||
|
|
||||||
# show the Libedit_INCLUDE_DIRS and Libedit_LIBRARIES variables only in the advanced view
|
|
||||||
mark_as_advanced(Libedit_INCLUDE_DIRS Libedit_LIBRARIES)
|
|
||||||
|
|
||||||
endif (Libedit_LIBRARIES AND Libedit_INCLUDE_DIRS)
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
CONTRIB_SRCS += contrib/10.readline/src/readline.c
|
||||||
|
CONTRIB_INITS += readline
|
||||||
|
|
||||||
|
LDFLAGS += `pkg-config libedit --libs`
|
||||||
|
|
||||||
|
contrib/src/readline.o: contrib/src/readline.c
|
||||||
|
$(CC) $(CFLAGS) -o $@ $< `pkg-config libedit --cflags`
|
|
@ -7,13 +7,7 @@ forget to use the C++ extern "C" to get it to compile.
|
||||||
*/
|
*/
|
||||||
#include "picrin.h"
|
#include "picrin.h"
|
||||||
|
|
||||||
#if PIC_READLINE_INCLUDE_DIR_SUFFIX == readline
|
|
||||||
#include <readline/readline.h>
|
|
||||||
#include <readline/history.h>
|
|
||||||
#else
|
|
||||||
#include <editline/readline.h>
|
#include <editline/readline.h>
|
||||||
#include <editline/history.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static pic_value
|
static pic_value
|
||||||
pic_rl_readline(pic_state *pic)
|
pic_rl_readline(pic_state *pic)
|
||||||
|
|
Loading…
Reference in New Issue