summaryrefslogtreecommitdiff
path: root/Makefile.in
diff options
context:
space:
mode:
authorTJ Kolev <tjkolev@gmail.com>2023-02-02 15:10:37 -0600
committerTJ Kolev <tjkolev@gmail.com>2023-02-02 15:10:37 -0600
commitfdcadd906c21dcf2c09a965a6046f7bf9de84a69 (patch)
treef3ca129cb8f9d058a963fafadb707fee26b8a872 /Makefile.in
parent9defeb477aebf0eb575885eb1fd4a4330ce52531 (diff)
downloaddropbear-fdcadd906c21dcf2c09a965a6046f7bf9de84a69.tar.gz
Dropbear SSH - file structure reorg
Separating source and binaries. * Dropbear source files (.c, .h) were moved under a new ./src folder. * Object binaries get generated into the ./obj folder. This helps to keep less cluttered project. tjk :)
Diffstat (limited to 'Makefile.in')
-rw-r--r--Makefile.in72
1 files changed, 43 insertions, 29 deletions
diff --git a/Makefile.in b/Makefile.in
index e824491..e1c8246 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -12,25 +12,30 @@ ifndef PROGRAMS
PROGRAMS=dropbear dbclient dropbearkey dropbearconvert
endif
+srcdir=./src
+VPATH=$(srcdir)
+
STATIC_LTC=libtomcrypt/libtomcrypt.a
STATIC_LTM=libtommath/libtommath.a
LIBTOM_LIBS=@LIBTOM_LIBS@
ifeq (@BUNDLED_LIBTOM@, 1)
-LIBTOM_DEPS=$(STATIC_LTC) $(STATIC_LTM)
-LIBTOM_CLEAN=ltc-clean ltm-clean
-CPPFLAGS+=-I$(srcdir)/libtomcrypt/src/headers/
-LIBTOM_LIBS=$(STATIC_LTC) $(STATIC_LTM)
+ LIBTOM_DEPS=$(STATIC_LTC) $(STATIC_LTM)
+ LIBTOM_CLEAN=ltc-clean ltm-clean
+ CPPFLAGS+=-I./libtomcrypt/src/headers/ -I./libtommath
+ LIBTOM_LIBS=$(STATIC_LTC) $(STATIC_LTM)
endif
-OPTION_HEADERS = default_options_guard.h sysoptions.h
-ifneq ($(wildcard localoptions.h),)
-CPPFLAGS+=-DLOCALOPTIONS_H_EXISTS
-OPTION_HEADERS += localoptions.h
+OPTION_HEADERS = $(srcdir)/default_options_guard.h $(srcdir)/sysoptions.h
+ifneq ($(wildcard $(srcdir)/localoptions.h),)
+ CPPFLAGS+=-DLOCALOPTIONS_H_EXISTS
+ OPTION_HEADERS += $(srcdir)/localoptions.h
endif
-COMMONOBJS=dbutil.o buffer.o dbhelpers.o \
+OBJ_DIR=./obj
+
+_COMMONOBJS=dbutil.o buffer.o dbhelpers.o \
dss.o bignum.o \
signkey.o rsa.o dbrandom.o \
queue.o \
@@ -39,27 +44,34 @@ COMMONOBJS=dbutil.o buffer.o dbhelpers.o \
curve25519.o ed25519.o sk-ed25519.o \
dbmalloc.o \
gensignkey.o gendss.o genrsa.o gened25519.o
+COMMONOBJS = $(patsubst %,$(OBJ_DIR)/%,$(_COMMONOBJS))
-SVROBJS=svr-kex.o svr-auth.o sshpty.o \
+_SVROBJS=svr-kex.o svr-auth.o sshpty.o \
svr-authpasswd.o svr-authpubkey.o svr-authpubkeyoptions.o svr-session.o svr-service.o \
svr-chansession.o svr-runopts.o svr-agentfwd.o svr-main.o svr-x11fwd.o\
svr-tcpfwd.o svr-authpam.o
+SVROBJS = $(patsubst %,$(OBJ_DIR)/%,$(_SVROBJS))
-CLIOBJS=cli-main.o cli-auth.o cli-authpasswd.o cli-kex.o \
+_CLIOBJS=cli-main.o cli-auth.o cli-authpasswd.o cli-kex.o \
cli-session.o cli-runopts.o cli-chansession.o \
cli-authpubkey.o cli-tcpfwd.o cli-channel.o cli-authinteract.o \
cli-agentfwd.o
+CLIOBJS = $(patsubst %,$(OBJ_DIR)/%,$(_CLIOBJS))
-CLISVROBJS=common-session.o packet.o common-algo.o common-kex.o \
- common-channel.o common-chansession.o termcodes.o loginrec.o \
- tcp-accept.o listener.o process-packet.o dh_groups.o \
- common-runopts.o circbuffer.o list.o netio.o chachapoly.o gcm.o
+_CLISVROBJS=common-session.o packet.o common-algo.o common-kex.o \
+ common-channel.o common-chansession.o termcodes.o loginrec.o \
+ tcp-accept.o listener.o process-packet.o dh_groups.o \
+ common-runopts.o circbuffer.o list.o netio.o chachapoly.o gcm.o
+CLISVROBJS = $(patsubst %,$(OBJ_DIR)/%,$(_CLISVROBJS))
-KEYOBJS=dropbearkey.o
+_KEYOBJS=dropbearkey.o
+KEYOBJS = $(patsubst %,$(OBJ_DIR)/%,$(_KEYOBJS))
-CONVERTOBJS=dropbearconvert.o keyimport.o signkey_ossh.o
+_CONVERTOBJS=dropbearconvert.o keyimport.o signkey_ossh.o
+CONVERTOBJS = $(patsubst %,$(OBJ_DIR)/%,$(_CONVERTOBJS))
-SCPOBJS=scp.o progressmeter.o atomicio.o scpmisc.o compat.o
+_SCPOBJS=scp.o progressmeter.o atomicio.o scpmisc.o compat.o
+SCPOBJS = $(patsubst %,$(OBJ_DIR)/%,$(_SCPOBJS))
ifeq (@DROPBEAR_FUZZ@, 1)
allobjs = $(COMMONOBJS) fuzz/fuzz-common.o fuzz/fuzz-wrapfd.o $(CLISVROBJS) $(CLIOBJS) $(SVROBJS) @CRYPTLIB@
@@ -82,17 +94,14 @@ else
endif
ifeq (@DROPBEAR_PLUGIN@, 1)
- # rdynamic makes all the global symbols of dropbear available to all the loaded shared libraries
- # this allow a plugin to reuse existing crypto/utilities like base64_decode/base64_encode without
- # the need to rewrite them.
- PLUGIN_LIBS=-ldl -rdynamic
+ # rdynamic makes all the global symbols of dropbear available to all the loaded shared libraries
+ # this allow a plugin to reuse existing crypto/utilities like base64_decode/base64_encode without
+ # the need to rewrite them.
+ PLUGIN_LIBS=-ldl -rdynamic
else
- PLUGIN_LIBS=
+ PLUGIN_LIBS=
endif
-VPATH=@srcdir@
-srcdir=@srcdir@
-
prefix=@prefix@
exec_prefix=@exec_prefix@
datarootdir = @datarootdir@
@@ -107,7 +116,7 @@ AR=@AR@
RANLIB=@RANLIB@
STRIP=@STRIP@
INSTALL=@INSTALL@
-CPPFLAGS+=@CPPFLAGS@ -I. -I$(srcdir)
+CPPFLAGS+=@CPPFLAGS@ -I$(srcdir)
CFLAGS+=@CFLAGS@
LIBS+=@LIBS@
LDFLAGS=@LDFLAGS@
@@ -150,7 +159,11 @@ all: $(TARGETS)
# for simplicity assume all source depends on all headers
HEADERS=$(wildcard $(srcdir)/*.h *.h) $(OPTION_HEADERS)
-%.o : %.c $(HEADERS)
+
+$(OBJ_DIR):
+ mkdir -p $@
+
+$(OBJ_DIR)/%.o: $(srcdir)/%.c $(HEADERS) | $(OBJ_DIR)
$(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
default_options_guard.h: default_options.h
@@ -253,7 +266,8 @@ clean: $(LIBTOM_CLEAN) $(FUZZ_CLEAN) thisclean
thisclean:
-rm -f dropbear$(EXEEXT) dbclient$(EXEEXT) dropbearkey$(EXEEXT) \
dropbearconvert$(EXEEXT) scp$(EXEEXT) scp-progress$(EXEEXT) \
- dropbearmulti$(EXEEXT) *.o *.da *.bb *.bbg *.prof
+ dropbearmulti$(EXEEXT) *.o *.da *.bb *.bbg *.prof \
+ $(OBJ_DIR)/*
distclean: clean tidy
-rm -f config.h