From fdcadd906c21dcf2c09a965a6046f7bf9de84a69 Mon Sep 17 00:00:00 2001 From: TJ Kolev Date: Thu, 2 Feb 2023 15:10:37 -0600 Subject: 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 :) --- Makefile.in | 72 ++++++++++++++++++++++++++++++++++++------------------------- 1 file changed, 43 insertions(+), 29 deletions(-) (limited to 'Makefile.in') 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 -- cgit v1.2.1