Fix some LINKAGE=static compile issues:
- Makefile circularity by fixing .so suffix - simplify example/main Makefile
This commit is contained in:
parent
c00162aec1
commit
5a875e3152
11 changed files with 34 additions and 30 deletions
|
|
@ -108,6 +108,8 @@ Developers may need to change their code
|
|||
|
||||
### Minor features
|
||||
|
||||
* Added -H option to clixon_netconf: Do not require hello before request
|
||||
* CLIXON_STATIC_PLUGIN to support statically linked plugins
|
||||
* JSON errors are now labelled with JSON and not XML
|
||||
* Restconf native HTTP/2:
|
||||
* Added option `CLICON_RESTCONF_HTTP2_PLAIN` for non-TLS http
|
||||
|
|
|
|||
|
|
@ -35,10 +35,6 @@
|
|||
VPATH = @srcdir@
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
CC = @CC@
|
||||
CFLAGS = @CFLAGS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBS = @LIBS@
|
||||
with_restconf = @with_restconf@
|
||||
|
||||
SHELL = /bin/sh
|
||||
|
|
|
|||
|
|
@ -164,10 +164,12 @@ test.c :
|
|||
test: test.c $(LIBOBJ) $(MYLIB)
|
||||
$(CC) $(INCLUDES) $(LDFLAGS) $< $(LIBOBJ) -L. $(MYLIB) $(LIBS) -o $@
|
||||
|
||||
$(APPL) : $(APPOBJ) $(MYLIB) $(LIBDEPS)
|
||||
# Note LIBDEPS is in lib/src and will always be remade du to a date dependency
|
||||
ifeq ($(LINKAGE),dynamic)
|
||||
$(APPL) : $(APPOBJ) $(MYLIB) $(LIBDEPS)
|
||||
$(CC) $(LDFLAGS) $(APPOBJ) -L. $(MYLIB) $(LIBS) -o $@
|
||||
else
|
||||
$(APPL) : $(APPOBJ) $(LIBOBJ) $(LIBDEPS)
|
||||
$(CC) $(LDFLAGS) $(APPOBJ) -L. $(LIBOBJ) $(LIBS) -o $@
|
||||
endif
|
||||
|
||||
|
|
|
|||
|
|
@ -533,7 +533,9 @@ get_list_pagination(clicon_handle h,
|
|||
/* sort */
|
||||
if (ret && (x = xml_find_type(xe, NULL, "sort", CX_ELMNT)) != NULL)
|
||||
sort = xml_body(x);
|
||||
if (sort) ; /* XXX */
|
||||
if (sort) {
|
||||
/* XXX: nothing yet */
|
||||
}
|
||||
/* where */
|
||||
if (ret && (x = xml_find_type(xe, NULL, "where", CX_ELMNT)) != NULL)
|
||||
where = xml_body(x);
|
||||
|
|
|
|||
|
|
@ -43,11 +43,11 @@ CPPFLAGS = @CPPFLAGS@
|
|||
ifeq ($(LINKAGE),dynamic)
|
||||
CPPFLAGS += -fPIC
|
||||
endif
|
||||
SH_SUFFIX = @SH_SUFFIX@
|
||||
SH_SUFFIX = .so
|
||||
INSTALLFLAGS = @INSTALLFLAGS@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
ifneq ($(LINKAGE),dynamic)
|
||||
LDFLAGS += -rdynamic -L.
|
||||
LDFLAGS += -rdynamic -L. # -rdynamic for using -ldl
|
||||
endif
|
||||
|
||||
prefix = @prefix@
|
||||
|
|
@ -165,11 +165,13 @@ test.c :
|
|||
test: test.c $(LIBOBJ) $(MYLIB)
|
||||
$(CC) $(INCLUDES) $(LDFLAGS) $< $(LIBOBJ) -L. $(MYLIB) $(LIBS) -o $@
|
||||
|
||||
# Note LIBDEPS is in lib/src and will always be remade du to a date dependency
|
||||
$(APPL): $(APPOBJ) $(MYLIB) $(LIBDEPS)
|
||||
ifeq ($(LINKAGE),dynamic)
|
||||
$(CC) $(LDFLAGS) $(APPOBJ) -L. $(MYLIB) $(LIBS) -o $@
|
||||
else
|
||||
$(CC) $(LDFLAGS) $(APPOBJ) $(EXTRAS) -L. $(LIBOBJ) $(LIBS) -o $@
|
||||
# Force static libcligen.a linking
|
||||
$(CC) $(LDFLAGS) $(APPOBJ) $(EXTRAS) -L. $(LIBOBJ) $(DESTDIR)$(libdir)/libcligen.a $(LIBS) -o $@
|
||||
endif
|
||||
|
||||
$(MYLIBDYNAMIC) : $(LIBOBJ) $(LIBDEPS)
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ sysconfdir = @sysconfdir@
|
|||
includedir = @includedir@
|
||||
HOST_VENDOR = @host_vendor@
|
||||
|
||||
SH_SUFFIX = @SH_SUFFIX@
|
||||
SH_SUFFIX = .so
|
||||
CLIXON_MAJOR = @CLIXON_VERSION_MAJOR@
|
||||
CLIXON_MINOR = @CLIXON_VERSION_MINOR@
|
||||
|
||||
|
|
@ -147,6 +147,7 @@ uninstall:
|
|||
.c.o:
|
||||
$(CC) $(INCLUDES) $(CPPFLAGS) -D__PROGRAM__=\"$(APPL)\" $(CFLAGS) -c $<
|
||||
|
||||
# Note LIBDEPS is in lib/src and will always be remade du to a date dependency
|
||||
$(APPL) : $(APPOBJ) $(MYLIB) $(LIBDEPS)
|
||||
$(CC) $(LDFLAGS) $(APPOBJ) -L. $(MYLIB) $(LIBS) -o $@
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ wwwdir = @wwwdir@
|
|||
# one of fcgi or native:
|
||||
with_restconf = @with_restconf@
|
||||
|
||||
SH_SUFFIX = @SH_SUFFIX@
|
||||
SH_SUFFIX = .so
|
||||
CLIXON_MAJOR = @CLIXON_VERSION_MAJOR@
|
||||
CLIXON_MINOR = @CLIXON_VERSION_MINOR@
|
||||
|
||||
|
|
@ -185,13 +185,15 @@ uninstall:
|
|||
.c.o:
|
||||
$(CC) $(INCLUDES) -D__PROGRAM__=\"clixon_restconf\" $(CPPFLAGS) $(CFLAGS) -c $<
|
||||
|
||||
$(APPL) : $(APPOBJ) $(MYLIBLINK) $(LIBDEPS)
|
||||
# Note LIBDEPS is in lib/src and will always be remade du to a date dependency
|
||||
$(APPL) : $(APPOBJ) $(MYLIB) $(LIBDEPS)
|
||||
$(CC) $(LDFLAGS) $(APPOBJ) -L. $(MYLIB) $(LIBS) -o $@
|
||||
|
||||
$(MYLIBDYNAMIC) : $(LIBOBJ) $(LIBDEPS)
|
||||
ifeq ($(HOST_VENDOR),apple)
|
||||
$(MYLIBDYNAMIC) : $(LIBOBJ) $(LIBDEPS)
|
||||
$(CC) $(LDFLAGS) -shared -undefined dynamic_lookup -o $@ $(LIBOBJ) $(LIBS)
|
||||
else
|
||||
$(MYLIBDYNAMIC) : $(LIBOBJ) $(LIBDEPS)
|
||||
$(CC) $(LDFLAGS) -shared -Wl,-soname,$(MYLIBSO) -o $@ $(LIBOBJ) $(LIBS) -Wl,-soname=$(MYLIBSO)
|
||||
endif
|
||||
|
||||
|
|
|
|||
|
|
@ -346,7 +346,7 @@ api_data_collection(clicon_handle h,
|
|||
cxobj *xtop = NULL;
|
||||
cxobj *xbot = NULL;
|
||||
cxobj *xp;
|
||||
cxobj *xpr;
|
||||
cxobj *xpr = NULL;
|
||||
yang_stmt *y = NULL;
|
||||
cbuf *cbrpc = NULL;
|
||||
int32_t depth = -1; /* Nr of levels to print, -1 is all, 0 is none */
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ ifeq ($(LINKAGE),dynamic)
|
|||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -lclixon_backend
|
||||
else
|
||||
# can include -L in LDFLAGS?
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -L ../../apps/backend/ -lclixon_backend
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -lclixon_backend
|
||||
endif
|
||||
|
||||
# Secondary NACM backend plugin
|
||||
|
|
@ -114,7 +114,7 @@ $(BE2_PLUGIN): $(BE2_OBJ)
|
|||
ifeq ($(LINKAGE),dynamic)
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -lclixon_backend
|
||||
else
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -L ../../apps/backend/ -lclixon_backend
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $< -lclixon -lclixon_backend
|
||||
endif
|
||||
|
||||
# CLI frontend plugin
|
||||
|
|
@ -127,12 +127,6 @@ else
|
|||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -L ../../apps/cli/ -lclixon_cli
|
||||
endif
|
||||
|
||||
ifeq ($(LINKAGE),dynamic)
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -lclixon_cli
|
||||
else
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -L ../../apps/cli/ -lclixon_cli
|
||||
endif
|
||||
|
||||
# NETCONF frontend plugin
|
||||
NETCONF_SRC = $(APPNAME)_netconf.c
|
||||
NETCONF_OBJ = $(NETCONF_SRC:%.c=%.o)
|
||||
|
|
@ -140,7 +134,7 @@ $(NETCONF_PLUGIN): $(NETCONF_OBJ)
|
|||
ifeq ($(LINKAGE),dynamic)
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -lclixon_netconf
|
||||
else
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -L ../../apps/netconf/ -lclixon_netconf
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -lclixon_netconf
|
||||
endif
|
||||
|
||||
# See configure.ac
|
||||
|
|
@ -151,7 +145,7 @@ $(RESTCONF_PLUGIN): $(RESTCONF_OBJ)
|
|||
ifeq ($(LINKAGE),dynamic)
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -lclixon_restconf
|
||||
else
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -L ../../apps/restconf/ -lclixon_restconf
|
||||
$(CC) -Wall -shared $(LDFLAGS) -o $@ -lc $^ -lclixon -lclixon_restconf
|
||||
endif
|
||||
|
||||
SRC = $(BE_SRC) $(BE2_SRC) $(CLI_SRC) $(NETCONF_SRC)
|
||||
|
|
|
|||
|
|
@ -32,16 +32,18 @@ Below is an example of how to do this for the main example. You can replace the
|
|||
```
|
||||
CC=/usr/bin/afl-clang-fast CFLAGS="-O2 -Wall -DCLIXON_STATIC_PLUGINS" LINKAGE=static ./configure
|
||||
make clean
|
||||
cd example/main # Compile and install application plugins (here main example)
|
||||
|
||||
make
|
||||
sudo make install
|
||||
|
||||
cd example # Compile and install application plugins (here main example)
|
||||
make clean
|
||||
make
|
||||
sudo make install
|
||||
cd ../..
|
||||
cd lib # Compile and install clixon lib
|
||||
make
|
||||
sudo make install
|
||||
cd ..
|
||||
|
||||
cd apps/cli # Compile and install clixon_cli with pre-compiled plugins
|
||||
rm clixon_cli
|
||||
EXTRAS="../../example/main/example_cli.o ../../example/main/test_cli.o" make clixon_cli
|
||||
sudo make install
|
||||
```
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ CFLAGS = @CFLAGS@
|
|||
ifeq ($(LINKAGE),dynamic)
|
||||
CFLAGS += -fPIC
|
||||
endif
|
||||
SH_SUFFIX = @SH_SUFFIX@
|
||||
SH_SUFFIX = .so
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_LIB = @INSTALL@
|
||||
INSTALLFLAGS = @INSTALLFLAGS@
|
||||
|
|
@ -239,6 +239,7 @@ build.c:
|
|||
date +"const char CLIXON_BUILDSTR[$(DATELEN)]=\"%Y.%m.%d %H:%M by `whoami` on `hostname`"\"\; >> build.c;
|
||||
echo "const char CLIXON_VERSION[64]=\"$(CLIXON_VERSION)\""\; >> build.c;
|
||||
|
||||
# Note: will always be remade since GENOBS is date dependent
|
||||
$(MYLIBDYNAMIC) : $(GENOBJS) $(OBJS)
|
||||
ifeq ($(HOST_VENDOR),apple)
|
||||
$(CC) $(LDFLAGS) -shared -o $@ $(GENOBJS) $(OBJS) $(LIBS) -undefined dynamic_lookup -o $@
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue