Properly build shared/static libxbps and utils.
xbps-fetch: added -v flag to see verbose messages in libfetch. --HG-- extra : convert_revision : xtraeme%40gmail.com-20091030111726-axf9paz2k01ntqzz
This commit is contained in:
parent
79f9f34775
commit
3905c2106c
24
Makefile
24
Makefile
@ -4,9 +4,27 @@ SUBDIRS = lib bin
|
|||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all:
|
all:
|
||||||
for dir in $(SUBDIRS); do \
|
@echo
|
||||||
$(MAKE) -C $$dir; \
|
@echo "********************************"
|
||||||
done
|
@echo "*** Building shared libxbps ***"
|
||||||
|
@echo "********************************"
|
||||||
|
@echo
|
||||||
|
$(MAKE) -C lib
|
||||||
|
@echo
|
||||||
|
@echo "********************************"
|
||||||
|
@echo "*** Building shared binaries ***"
|
||||||
|
@echo "********************************"
|
||||||
|
@echo
|
||||||
|
$(MAKE) -C bin
|
||||||
|
@echo
|
||||||
|
@echo "********************************"
|
||||||
|
@echo "*** Building static binaries ***"
|
||||||
|
@echo "********************************"
|
||||||
|
@echo
|
||||||
|
$(MAKE) -C lib clean
|
||||||
|
$(MAKE) -C bin clean
|
||||||
|
$(MAKE) STATIC=1 -C lib
|
||||||
|
$(MAKE) STATIC=1 -C bin
|
||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install:
|
install:
|
||||||
|
@ -3,7 +3,6 @@ include $(TOPDIR)/vars.mk
|
|||||||
|
|
||||||
BIN = xbps-bin
|
BIN = xbps-bin
|
||||||
OBJS = check.o install.o main.o remove.o show-deps.o ../xbps-repo/util.o
|
OBJS = check.o install.o main.o remove.o show-deps.o ../xbps-repo/util.o
|
||||||
STATIC_LIBS += -lz -lacl -lbz2 -llzma
|
|
||||||
|
|
||||||
include $(TOPDIR)/prog.mk
|
include $(TOPDIR)/prog.mk
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ download_package_list(prop_object_iterator_t iter)
|
|||||||
}
|
}
|
||||||
printf("Downloading %s-%s binary package ...\n",
|
printf("Downloading %s-%s binary package ...\n",
|
||||||
pkgname, version);
|
pkgname, version);
|
||||||
rv = xbps_fetch_file(binfile, savedir);
|
rv = xbps_fetch_file(binfile, savedir, NULL);
|
||||||
free(savedir);
|
free(savedir);
|
||||||
free(binfile);
|
free(binfile);
|
||||||
if (rv != 0) {
|
if (rv != 0) {
|
||||||
|
@ -1,21 +1,40 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <xbps_api.h>
|
#include <xbps_api.h>
|
||||||
|
#include "fetch.h"
|
||||||
|
|
||||||
|
static void
|
||||||
|
usage(void)
|
||||||
|
{
|
||||||
|
printf("usage: xbps-fetch [-v] URL\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
int rv = 0;
|
char flags[8];
|
||||||
|
int c, rv = 0;
|
||||||
|
|
||||||
if (argc != 2) {
|
while ((c = getopt(argc, argv, "v")) != -1) {
|
||||||
printf("Usage: xbps-fetch [options] URL\n");
|
switch (c) {
|
||||||
exit(EXIT_FAILURE);
|
case 'v':
|
||||||
|
strcat(flags, "v");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
usage();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
argc -= optind;
|
||||||
|
argv += optind;
|
||||||
|
|
||||||
rv = xbps_fetch_file(argv[1], ".");
|
if (argc != 1)
|
||||||
|
usage();
|
||||||
|
|
||||||
|
rv = xbps_fetch_file(argv[0], ".", flags);
|
||||||
if (rv != 0) {
|
if (rv != 0) {
|
||||||
printf("xbps-fetch: couldn't download %s!\n", argv[1]);
|
printf("%s: %s\n", argv[0], xbps_fetch_error_string());
|
||||||
printf("xbps-fetch: %s\n", xbps_fetch_error_string());
|
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
exit(EXIT_SUCCESS);
|
exit(EXIT_SUCCESS);
|
||||||
|
@ -3,6 +3,5 @@ include $(TOPDIR)/vars.mk
|
|||||||
|
|
||||||
BIN = xbps-repo
|
BIN = xbps-repo
|
||||||
OBJS = main.o util.o index.o
|
OBJS = main.o util.o index.o
|
||||||
STATIC_LIBS += -lz -lbz2 -lacl -llzma
|
|
||||||
|
|
||||||
include $(TOPDIR)/prog.mk
|
include $(TOPDIR)/prog.mk
|
||||||
|
18
doc/README
18
doc/README
@ -26,16 +26,26 @@ http://code.google.com/p/portableproplib/
|
|||||||
I'm also the human maintaining the portable proplib package. I'd suggest you
|
I'm also the human maintaining the portable proplib package. I'd suggest you
|
||||||
to install it into /usr/local to avoid issues with your distribution packages.
|
to install it into /usr/local to avoid issues with your distribution packages.
|
||||||
|
|
||||||
To build the xbps utils, you'll need:
|
To build the xbps utils, you'll need for both shared and dynamic:
|
||||||
|
|
||||||
* asciidoc (to build the manpages)
|
* asciidoc (to build the manpages)
|
||||||
|
* libarchive (devel pkg)
|
||||||
|
* proplib (devel pkg)
|
||||||
|
* openssl (devel pkg)
|
||||||
|
|
||||||
|
If you only want to build the static binaries, you can pass STATIC=1
|
||||||
|
to the make command. You'll need development packages for the ones
|
||||||
|
mentioned above as well as the following:
|
||||||
|
|
||||||
|
* attr (devel pkg with static lib)
|
||||||
* acl (devel pkg with static lib)
|
* acl (devel pkg with static lib)
|
||||||
* zlib (devel pkg with static lib)
|
* zlib (devel pkg with static lib)
|
||||||
* bzip2 (devel pkg with static lib)
|
* bzip2 (devel pkg with static lib)
|
||||||
* xz (devel pkg with static lib)
|
* xz (devel pkg with static lib)
|
||||||
* libarchive (devel pkg with static lib, all features built in)
|
|
||||||
* proplib (devel pkg with static lib, see above)
|
Please note that when building the static binaries, the static libs
|
||||||
* openssl (devel pkg with static lib)
|
must match the requirements! please make sure that your installed
|
||||||
|
libarchive has all features built in (acl, zlib, bzip2, xz and openssl).
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
HOW TO USE IT
|
HOW TO USE IT
|
||||||
|
@ -44,8 +44,8 @@ typedef struct _SHA256_CTX {
|
|||||||
uint8_t buffer[SHA256_BLOCK_LENGTH];
|
uint8_t buffer[SHA256_BLOCK_LENGTH];
|
||||||
} SHA256_CTX;
|
} SHA256_CTX;
|
||||||
|
|
||||||
int SHA256_Init(SHA256_CTX *);
|
int XBPS_SHA256_Init(SHA256_CTX *);
|
||||||
int SHA256_Update(SHA256_CTX *, const uint8_t *, size_t);
|
int XBPS_SHA256_Update(SHA256_CTX *, const uint8_t *, size_t);
|
||||||
char *SHA256_End(SHA256_CTX *, uint8_t *);
|
char *XBPS_SHA256_End(SHA256_CTX *, uint8_t *);
|
||||||
|
|
||||||
#endif /* !_SHA2_DIGEST_H_ */
|
#endif /* !_SHA2_DIGEST_H_ */
|
||||||
|
@ -82,7 +82,7 @@ int SYMEXPORT xbps_configure_all_pkgs(void);
|
|||||||
int SYMEXPORT xbps_cmpver(const char *, const char *);
|
int SYMEXPORT xbps_cmpver(const char *, const char *);
|
||||||
|
|
||||||
/* From lib/download.c */
|
/* From lib/download.c */
|
||||||
int SYMEXPORT xbps_fetch_file(const char *, const char *);
|
int SYMEXPORT xbps_fetch_file(const char *, const char *, const char *);
|
||||||
void SYMEXPORT (*xbps_fetch_start_cb)(const char *, off_t *, off_t *);
|
void SYMEXPORT (*xbps_fetch_start_cb)(const char *, off_t *, off_t *);
|
||||||
void SYMEXPORT (*xbps_fetch_update_cb)(off_t *);
|
void SYMEXPORT (*xbps_fetch_update_cb)(off_t *);
|
||||||
void SYMEXPORT (*xbps_fetch_end_cb)(void);
|
void SYMEXPORT (*xbps_fetch_end_cb)(void);
|
||||||
|
34
lib/Makefile
34
lib/Makefile
@ -1,27 +1,10 @@
|
|||||||
include ../vars.mk
|
include ../vars.mk
|
||||||
|
|
||||||
INET6 ?= yes
|
|
||||||
SSL ?= yes
|
|
||||||
LIBS = -larchive -lprop
|
|
||||||
|
|
||||||
ifdef SSL
|
|
||||||
CPPFLAGS += -DWITH_SSL
|
|
||||||
LIBS += -lssl -lcrypto
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef INET6
|
|
||||||
CPPFLAGS += -DINET6
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef DEBUG
|
|
||||||
CPPFLAGS += -DDEBUG
|
|
||||||
endif
|
|
||||||
|
|
||||||
LIBMAJOR = 0
|
LIBMAJOR = 0
|
||||||
LIBMINOR = 0
|
LIBMINOR = 0
|
||||||
LIBMICRO = 0
|
LIBMICRO = 0
|
||||||
LIBXBPS_SHLIB = libxbps.so.$(LIBMAJOR).$(LIBMINOR).$(LIBMICRO)
|
LIBXBPS_SHLIB = libxbps.so.$(LIBMAJOR).$(LIBMINOR).$(LIBMICRO)
|
||||||
LIBXBPS_LDFLAGS = $(LIBS) -shared -Wl,-soname,libxbps.so.$(LIBMAJOR)
|
LIBXBPS_LDFLAGS = -shared -Wl,-soname,libxbps.so.$(LIBMAJOR)
|
||||||
|
|
||||||
# libfetch
|
# libfetch
|
||||||
OBJS = fetch/common.o fetch/fetch.o fetch/file.o fetch/ftp.o fetch/http.o
|
OBJS = fetch/common.o fetch/fetch.o fetch/file.o fetch/ftp.o fetch/http.o
|
||||||
@ -32,14 +15,25 @@ OBJS += humanize_number.o orphans.o plist.o purge.o register.o remove.o
|
|||||||
OBJS += repository.o requiredby.o sha256.o sortdeps.o state.o
|
OBJS += repository.o requiredby.o sha256.o sortdeps.o state.o
|
||||||
OBJS += sync_remote_pkgidx.o unpack.o util.o
|
OBJS += sync_remote_pkgidx.o unpack.o util.o
|
||||||
|
|
||||||
|
ifdef STATIC
|
||||||
|
all: libfetch libxbps.a
|
||||||
|
else
|
||||||
|
LDFLAGS = -lprop -larchive
|
||||||
|
ifdef WITH_SSL
|
||||||
|
LDFLAGS += -lssl -lcrypto
|
||||||
|
endif
|
||||||
all: libfetch libxbps.so libxbps.a
|
all: libfetch libxbps.so libxbps.a
|
||||||
|
endif
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
|
|
||||||
libfetch:
|
libfetch:
|
||||||
$(MAKE) -C fetch
|
$(MAKE) -C fetch
|
||||||
|
|
||||||
|
%.o: %.c
|
||||||
|
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -c $<
|
||||||
|
|
||||||
libxbps.so: $(OBJS)
|
libxbps.so: $(OBJS)
|
||||||
$(CC) $(LIBXBPS_LDFLAGS) $^ -o $(LIBXBPS_SHLIB)
|
$(CC) $(LDFLAGS) $(LIBXBPS_LDFLAGS) $^ -o $(LIBXBPS_SHLIB)
|
||||||
-ln -sf $(LIBXBPS_SHLIB) libxbps.so.$(LIBMAJOR)
|
-ln -sf $(LIBXBPS_SHLIB) libxbps.so.$(LIBMAJOR)
|
||||||
-ln -sf $(LIBXBPS_SHLIB) libxbps.so
|
-ln -sf $(LIBXBPS_SHLIB) libxbps.so
|
||||||
|
|
||||||
@ -50,7 +44,9 @@ libxbps.a: $(OBJS)
|
|||||||
.PHONY: install
|
.PHONY: install
|
||||||
install: all
|
install: all
|
||||||
install -d $(LIBDIR)
|
install -d $(LIBDIR)
|
||||||
|
ifdef STATIC
|
||||||
install -m 644 libxbps.a $(LIBDIR)
|
install -m 644 libxbps.a $(LIBDIR)
|
||||||
|
endif
|
||||||
install -m 644 $(LIBXBPS_SHLIB) $(LIBDIR)
|
install -m 644 $(LIBXBPS_SHLIB) $(LIBDIR)
|
||||||
cp -a libxbps.so $(LIBDIR)
|
cp -a libxbps.so $(LIBDIR)
|
||||||
cp -a libxbps.so.$(LIBMAJOR) $(LIBDIR)
|
cp -a libxbps.so.$(LIBMAJOR) $(LIBDIR)
|
||||||
|
@ -171,7 +171,7 @@ xbps_fetch_error_string(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int SYMEXPORT
|
int SYMEXPORT
|
||||||
xbps_fetch_file(const char *uri, const char *outputdir)
|
xbps_fetch_file(const char *uri, const char *outputdir, const char *flags)
|
||||||
{
|
{
|
||||||
struct stat st;
|
struct stat st;
|
||||||
struct xferstat xs;
|
struct xferstat xs;
|
||||||
@ -181,7 +181,7 @@ xbps_fetch_file(const char *uri, const char *outputdir)
|
|||||||
struct timeval tv[2];
|
struct timeval tv[2];
|
||||||
ssize_t bytes_read, bytes_written;
|
ssize_t bytes_read, bytes_written;
|
||||||
off_t bytes_dld = -1;
|
off_t bytes_dld = -1;
|
||||||
char buf[32768], *filename, *destfile = NULL;
|
char buf[32768], *filename, *destfile = NULL, fetchflags[8];
|
||||||
int fd = -1, rv = 0;
|
int fd = -1, rv = 0;
|
||||||
bool restart = false;
|
bool restart = false;
|
||||||
|
|
||||||
@ -221,7 +221,12 @@ xbps_fetch_file(const char *uri, const char *outputdir)
|
|||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
}
|
}
|
||||||
if ((rv = fetchStat(url, &url_st, "i")) == -1) {
|
memset(&fetchflags, 0, sizeof(fetchflags));
|
||||||
|
if (flags != NULL)
|
||||||
|
strcat(fetchflags, flags);
|
||||||
|
strcat(fetchflags, "i");
|
||||||
|
|
||||||
|
if ((rv = fetchStat(url, &url_st, fetchflags)) == -1) {
|
||||||
rv = fetchLastErrCode;
|
rv = fetchLastErrCode;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
@ -234,7 +239,7 @@ xbps_fetch_file(const char *uri, const char *outputdir)
|
|||||||
if (restart)
|
if (restart)
|
||||||
url->offset = st.st_size;
|
url->offset = st.st_size;
|
||||||
|
|
||||||
fio = fetchXGet(url, &url_st, "i");
|
fio = fetchXGet(url, &url_st, fetchflags);
|
||||||
if (fio == NULL) {
|
if (fio == NULL) {
|
||||||
rv = fetchLastErrCode;
|
rv = fetchLastErrCode;
|
||||||
goto out;
|
goto out;
|
||||||
|
@ -4,6 +4,22 @@ include $(TOPDIR)/vars.mk
|
|||||||
CFLAGS += -Wno-unused-macros -Wno-conversion
|
CFLAGS += -Wno-unused-macros -Wno-conversion
|
||||||
CPPFLAGS += -DFTP_COMBINE_CWDS -DNETBSD -I$(TOPDIR)/include
|
CPPFLAGS += -DFTP_COMBINE_CWDS -DNETBSD -I$(TOPDIR)/include
|
||||||
|
|
||||||
|
ifdef WITH_INET6
|
||||||
|
CPPFLAGS += -DINET6
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef WITH_SSL
|
||||||
|
CPPFLAGS += -DWITH_SSL
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef WITH_DEBUG
|
||||||
|
CPPFLAGS += -DDEBUG
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef STATIC
|
||||||
|
CFLAGS += -static
|
||||||
|
endif
|
||||||
|
|
||||||
OBJS= fetch.o common.o ftp.o http.o file.o
|
OBJS= fetch.o common.o ftp.o http.o file.o
|
||||||
INCS= common.h
|
INCS= common.h
|
||||||
GEN = ftperr.h httperr.h
|
GEN = ftperr.h httperr.h
|
||||||
@ -12,7 +28,7 @@ GEN = ftperr.h httperr.h
|
|||||||
all: $(OBJS)
|
all: $(OBJS)
|
||||||
|
|
||||||
%.o: %.c $(INCS) $(GEN)
|
%.o: %.c $(INCS) $(GEN)
|
||||||
$(CC) $(CPPFLAGS) $(CFLAGS) -c $<
|
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -c $<
|
||||||
|
|
||||||
ftperr.h: ftp.errors
|
ftperr.h: ftp.errors
|
||||||
./errlist.sh ftp_errlist FTP ftp.errors > $@
|
./errlist.sh ftp_errlist FTP ftp.errors > $@
|
||||||
|
@ -123,7 +123,7 @@ static const uint32_t sha256_initial_hash_value[8] = {
|
|||||||
|
|
||||||
/*** SHA-256: *********************************************************/
|
/*** SHA-256: *********************************************************/
|
||||||
int
|
int
|
||||||
SHA256_Init(SHA256_CTX *context)
|
XBPS_SHA256_Init(SHA256_CTX *context)
|
||||||
{
|
{
|
||||||
if (context == NULL)
|
if (context == NULL)
|
||||||
return 1;
|
return 1;
|
||||||
@ -220,7 +220,7 @@ SHA256_Transform(SHA256_CTX *context, const uint32_t *data)
|
|||||||
|
|
||||||
#else /* SHA2_UNROLL_TRANSFORM */
|
#else /* SHA2_UNROLL_TRANSFORM */
|
||||||
|
|
||||||
void
|
static void
|
||||||
SHA256_Transform(SHA256_CTX *context, const uint32_t *data)
|
SHA256_Transform(SHA256_CTX *context, const uint32_t *data)
|
||||||
{
|
{
|
||||||
uint32_t a, b, c, d, e, f, g, h, s0, s1;
|
uint32_t a, b, c, d, e, f, g, h, s0, s1;
|
||||||
@ -298,7 +298,7 @@ SHA256_Transform(SHA256_CTX *context, const uint32_t *data)
|
|||||||
#endif /* SHA2_UNROLL_TRANSFORM */
|
#endif /* SHA2_UNROLL_TRANSFORM */
|
||||||
|
|
||||||
int
|
int
|
||||||
SHA256_Update(SHA256_CTX *context, const uint8_t *data, size_t len)
|
XBPS_SHA256_Update(SHA256_CTX *context, const uint8_t *data, size_t len)
|
||||||
{
|
{
|
||||||
unsigned int freespace, usedspace;
|
unsigned int freespace, usedspace;
|
||||||
|
|
||||||
@ -441,7 +441,7 @@ SHA256_Final(uint8_t digest[], SHA256_CTX *context)
|
|||||||
static const char sha2_hex_digits[] = "0123456789abcdef";
|
static const char sha2_hex_digits[] = "0123456789abcdef";
|
||||||
|
|
||||||
char *
|
char *
|
||||||
SHA256_End(SHA256_CTX *ctx, uint8_t *buffer)
|
XBPS_SHA256_End(SHA256_CTX *ctx, uint8_t *buffer)
|
||||||
{
|
{
|
||||||
uint8_t digest[SHA256_DIGEST_LENGTH], *d = digest;
|
uint8_t digest[SHA256_DIGEST_LENGTH], *d = digest;
|
||||||
uint8_t *ret;
|
uint8_t *ret;
|
||||||
|
@ -133,7 +133,7 @@ xbps_sync_repository_pkg_index(const char *uri)
|
|||||||
free(lrepodir);
|
free(lrepodir);
|
||||||
return errno;
|
return errno;
|
||||||
}
|
}
|
||||||
rv = xbps_fetch_file(rpidx, lrepodir);
|
rv = xbps_fetch_file(rpidx, lrepodir, NULL);
|
||||||
|
|
||||||
free(rpidx);
|
free(rpidx);
|
||||||
free(lrepodir);
|
free(lrepodir);
|
||||||
|
@ -53,10 +53,10 @@ xbps_get_file_hash(const char *file)
|
|||||||
if ((fd = open(file, O_RDONLY)) == -1)
|
if ((fd = open(file, O_RDONLY)) == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
SHA256_Init(&ctx);
|
XBPS_SHA256_Init(&ctx);
|
||||||
while ((bytes = read(fd, buf, sizeof(buf))) > 0)
|
while ((bytes = read(fd, buf, sizeof(buf))) > 0)
|
||||||
SHA256_Update(&ctx, buf, (size_t)bytes);
|
XBPS_SHA256_Update(&ctx, buf, (size_t)bytes);
|
||||||
hash = strdup(SHA256_End(&ctx, digest));
|
hash = strdup(XBPS_SHA256_End(&ctx, digest));
|
||||||
(void)close(fd);
|
(void)close(fd);
|
||||||
|
|
||||||
return hash;
|
return hash;
|
||||||
|
23
prog.mk
23
prog.mk
@ -1,29 +1,35 @@
|
|||||||
BIN_STATIC ?= $(BIN).static
|
|
||||||
OBJS ?= main.o
|
OBJS ?= main.o
|
||||||
MAN ?= $(BIN).8
|
MAN ?= $(BIN).8
|
||||||
|
|
||||||
all: $(BIN) $(BIN_STATIC) $(MAN)
|
ifdef STATIC
|
||||||
|
all: $(BIN).static
|
||||||
|
else
|
||||||
|
LDFLAGS = -lxbps
|
||||||
|
all: $(BIN) $(MAN)
|
||||||
|
endif
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
|
|
||||||
$(MAN):
|
$(MAN):
|
||||||
a2x -f manpage $(MAN).txt
|
a2x -f manpage $(MAN).txt
|
||||||
|
|
||||||
$(BIN_STATIC): $(OBJS)
|
$(BIN).static: $(OBJS)
|
||||||
$(CC) -static $^ $(LDFLAGS) $(STATIC_LIBS) -o $@
|
$(CC) $^ -static -lxbps $(LDFLAGS) -o $@
|
||||||
|
|
||||||
$(BIN): $(OBJS)
|
$(BIN): $(OBJS)
|
||||||
$(CC) $^ $(LDFLAGS) -o $@
|
$(CC) $^ $(LDFLAGS) -o $@
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
-rm -f $(BIN) $(BIN_STATIC) $(MAN)
|
-rm -f $(BIN) $(MAN)
|
||||||
|
-rm -f $(BIN).static
|
||||||
-rm -f $(OBJS)
|
-rm -f $(OBJS)
|
||||||
|
|
||||||
.PHONY: install
|
.PHONY: install
|
||||||
install: $(BIN) $(BIN_STATIC) $(MAN)
|
install: $(BIN) $(MAN)
|
||||||
install -d $(SBINDIR)
|
install -d $(SBINDIR)
|
||||||
install $(INSTALL_STRIPPED) -m 755 $(BIN) $(SBINDIR)
|
install $(INSTALL_STRIPPED) -m 755 $(BIN) $(SBINDIR)
|
||||||
install $(INSTALL_STRIPPED) -m 755 $(BIN_STATIC) $(SBINDIR)
|
install $(INSTALL_STRIPPED) -m 755 $(BIN).static $(SBINDIR)
|
||||||
ifdef MAN
|
ifdef MAN
|
||||||
install -d $(MANDIR)
|
install -d $(MANDIR)
|
||||||
install -m 644 $(MAN) $(MANDIR)
|
install -m 644 $(MAN) $(MANDIR)
|
||||||
@ -31,4 +37,5 @@ endif
|
|||||||
|
|
||||||
.PHONY: uninstall
|
.PHONY: uninstall
|
||||||
uninstall:
|
uninstall:
|
||||||
-rm -f $(SBINDIR)/$(BIN) $(SBINDIR)/$(BIN_STATIC)
|
-rm -f $(SBINDIR)/$(BIN)
|
||||||
|
-rm -f $(SBINDIR)/$(BIN).static
|
||||||
|
20
vars.mk
20
vars.mk
@ -1,5 +1,8 @@
|
|||||||
# Common variables.
|
# Common variables.
|
||||||
|
|
||||||
|
WITH_INET6 = yes
|
||||||
|
WITH_SSL = yes
|
||||||
|
|
||||||
PREFIX ?= /usr/local
|
PREFIX ?= /usr/local
|
||||||
SBINDIR ?= $(DESTDIR)$(PREFIX)/sbin
|
SBINDIR ?= $(DESTDIR)$(PREFIX)/sbin
|
||||||
LIBDIR ?= $(DESTDIR)$(PREFIX)/lib
|
LIBDIR ?= $(DESTDIR)$(PREFIX)/lib
|
||||||
@ -12,12 +15,19 @@ INSTALL_STRIPPED=
|
|||||||
DEBUG_FLAGS = -g
|
DEBUG_FLAGS = -g
|
||||||
endif
|
endif
|
||||||
|
|
||||||
STATIC_LIBS ?= -lprop -lpthread -larchive
|
LDFLAGS = -L$(TOPDIR)/lib
|
||||||
LDFLAGS += -L$(TOPDIR)/lib -L$(PREFIX)/lib -lxbps
|
|
||||||
CPPFLAGS += -I$(TOPDIR)/include -D_XOPEN_SOURCE=600 -D_GNU_SOURCE
|
CPPFLAGS += -I$(TOPDIR)/include -D_XOPEN_SOURCE=600 -D_GNU_SOURCE
|
||||||
CPPFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES
|
CPPFLAGS += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES
|
||||||
WARNFLAGS ?= -pedantic -std=c99 -Wall -Wextra -Werror -Wshadow -Wformat=2
|
WARNFLAGS ?= -pedantic -std=c99 -Wall -Wextra -Werror -Wshadow -Wformat=2
|
||||||
WARNFLAGS += -Wmissing-declarations -Wcomment -Wunused-macros -Wendif-labels
|
WARNFLAGS += -Wmissing-declarations -Wcomment -Wunused-macros -Wendif-labels
|
||||||
WARNFLAGS += -Wcast-qual -Wcast-align -Wstack-protector
|
WARNFLAGS += -Wcast-qual -Wcast-align
|
||||||
CFLAGS = $(DEBUG_FLAGS) $(WARNFLAGS) -fstack-protector-all -O2 -fPIC -DPIC
|
CFLAGS = $(DEBUG_FLAGS) $(WARNFLAGS)
|
||||||
CFLAGS += -fvisibility=hidden
|
|
||||||
|
ifdef STATIC
|
||||||
|
CFLAGS += -static
|
||||||
|
LDFLAGS += -lprop -lpthread -larchive -lssl -lcrypto -ldl -lacl \
|
||||||
|
-lattr -lcrypto -llzma -lbz2 -lz
|
||||||
|
else
|
||||||
|
CFLAGS += -fvisibility=hidden -fstack-protector-all -fPIC -DPIC
|
||||||
|
CPPFLAGS += -Wstack-protector
|
||||||
|
endif
|
||||||
|
Loading…
Reference in New Issue
Block a user