mirror of
https://github.com/rofl0r/proxychains-ng
synced 2025-03-10 13:27:20 +08:00
the hostentdb introduced between 4.2 and 4.3 (via af5c6f0c6a7cddd46b801b7b59af7a5e9383c645 ) had several issues: - it caused breakage on FreeBSD and was commented out there - prevented usage of the hostdb when proxy_dns was turned off (issue #42) - required dynamic memory allocation which was accessed from several threads - wouldnt reflect changes to the hosts file made during program run the only sensible solution is to remove the hostentdb and replace it with a home-grown hosts parser (we can't use gethostent() since that would mess up the gethostent()-state from different threads). the new parser used here is deliberately held simple and only meant to provide the user with means to reference hardcoded ipv4 addresses via his hosts file. fixes #42
91 lines
2.2 KiB
Makefile
91 lines
2.2 KiB
Makefile
#
|
|
# Makefile for proxychains (requires GNU make), stolen from musl
|
|
#
|
|
# Use config.mak to override any of the following variables.
|
|
# Do not make changes here.
|
|
#
|
|
|
|
exec_prefix = /usr/local
|
|
bindir = $(exec_prefix)/bin
|
|
|
|
prefix = /usr/local/
|
|
includedir = $(prefix)/include
|
|
libdir = $(prefix)/lib
|
|
sysconfdir=$(prefix)/etc
|
|
|
|
SRCS = $(sort $(wildcard src/*.c))
|
|
OBJS = $(SRCS:.c=.o)
|
|
LOBJS = src/nameinfo.o src/version.o \
|
|
src/core.o src/common.o src/libproxychains.o src/shm.o \
|
|
src/allocator_thread.o src/ip_type.o src/stringdump.o \
|
|
src/hostsreader.o src/hash.o src/debug.o
|
|
|
|
GENH = src/version.h
|
|
|
|
CFLAGS += -Wall -O0 -g -std=c99 -D_GNU_SOURCE -pipe
|
|
NO_AS_NEEDED = -Wl,--no-as-needed
|
|
LIBDL = -ldl
|
|
LDFLAGS = -shared -fPIC $(NO_AS_NEEDED) $(LIBDL) -lpthread
|
|
INC =
|
|
PIC = -fPIC
|
|
AR = $(CROSS_COMPILE)ar
|
|
RANLIB = $(CROSS_COMPILE)ranlib
|
|
|
|
LDSO_SUFFIX = so
|
|
LD_SET_SONAME = -Wl,-soname=
|
|
INSTALL = ./tools/install.sh
|
|
|
|
LDSO_PATHNAME = libproxychains4.$(LDSO_SUFFIX)
|
|
|
|
SHARED_LIBS = $(LDSO_PATHNAME)
|
|
ALL_LIBS = $(SHARED_LIBS)
|
|
PXCHAINS = proxychains4
|
|
ALL_TOOLS = $(PXCHAINS)
|
|
ALL_CONFIGS = src/proxychains.conf
|
|
|
|
-include config.mak
|
|
|
|
CFLAGS+=$(USER_CFLAGS) $(MAC_CFLAGS)
|
|
CFLAGS_MAIN=-DLIB_DIR=\"$(libdir)\" -DSYSCONFDIR=\"$(sysconfdir)\" -DDLL_NAME=\"$(LDSO_PATHNAME)\"
|
|
|
|
|
|
all: $(ALL_LIBS) $(ALL_TOOLS)
|
|
|
|
install: install-libs install-tools
|
|
|
|
$(DESTDIR)$(bindir)/%: %
|
|
$(INSTALL) -D -m 755 $< $@
|
|
|
|
$(DESTDIR)$(libdir)/%: %
|
|
$(INSTALL) -D -m 644 $< $@
|
|
|
|
$(DESTDIR)$(sysconfdir)/%: src/%
|
|
$(INSTALL) -D -m 644 $< $@
|
|
|
|
install-libs: $(ALL_LIBS:%=$(DESTDIR)$(libdir)/%)
|
|
install-tools: $(ALL_TOOLS:%=$(DESTDIR)$(bindir)/%)
|
|
install-config: $(ALL_CONFIGS:src/%=$(DESTDIR)$(sysconfdir)/%)
|
|
|
|
clean:
|
|
rm -f $(ALL_LIBS)
|
|
rm -f $(ALL_TOOLS)
|
|
rm -f $(OBJS)
|
|
rm -f $(GENH)
|
|
|
|
src/version.h: $(wildcard VERSION .git)
|
|
printf '#define VERSION "%s"\n' "$$(sh tools/version.sh)" > $@
|
|
|
|
src/version.o: src/version.h
|
|
|
|
%.o: %.c
|
|
$(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_MAIN) $(INC) $(PIC) -c -o $@ $<
|
|
|
|
$(LDSO_PATHNAME): $(LOBJS)
|
|
$(CC) $(LDFLAGS) $(LD_SET_SONAME)$(LDSO_PATHNAME) -o $@ $(LOBJS)
|
|
|
|
$(ALL_TOOLS): $(OBJS)
|
|
$(CC) src/main.o src/common.o -o $(PXCHAINS)
|
|
|
|
|
|
.PHONY: all clean install install-config install-libs install-tools
|