diff mbox

i2c-tools: enable static use of libi2c

Message ID 1434420079-3029-1-git-send-email-wsa@the-dreams.de (mailing list archive)
State Not Applicable
Headers show

Commit Message

Wolfram Sang June 16, 2015, 2:01 a.m. UTC
From: Wolfram Sang <wsa+renesas@sang-engineering.com>

When debugging embedded systems, it is often nice to simply TFTP the
desired i2ctool to the target without the hazzle of dealing with shared
libs. Using -static is overkill, too, so let's add a switch which will
only link functions from libi2c statically.

Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
---
 Makefile        | 2 ++
 tools/Module.mk | 4 ++++
 2 files changed, 6 insertions(+)

Comments

Jean Delvare June 17, 2015, 9:06 a.m. UTC | #1
Hallo Wolfram,

On Tue, 16 Jun 2015 04:01:19 +0200, Wolfram Sang wrote:
> From: Wolfram Sang <wsa+renesas@sang-engineering.com>
> 
> When debugging embedded systems, it is often nice to simply TFTP the
> desired i2ctool to the target without the hazzle of dealing with shared
> libs. Using -static is overkill, too, so let's add a switch which will
> only link functions from libi2c statically.

Fine with me.

> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> ---
>  Makefile        | 2 ++
>  tools/Module.mk | 4 ++++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/Makefile b/Makefile
> index 252a126..6d36f2f 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -33,6 +33,8 @@ CFLAGS		+= -Wall
>  SOCFLAGS	:= -fpic -D_REENTRANT $(CFLAGS)
>  
>  BUILD_STATIC_LIB ?= 1
> +# Uncomment to use static libi2c
> +#USE_STATIC_LIB := 1

Any reason for not using ?= as above, with the default being unset?
That way BUILD_STATIC_LIB and USE_STATIC_LIB can both be controlled
using the same mechanism, and can be changed from their default value
on the command line (without patching the Makefile.)

>  
>  KERNELVERSION	:= $(shell uname -r)
>  
> diff --git a/tools/Module.mk b/tools/Module.mk
> index d14bb0c..8efddbb 100644
> --- a/tools/Module.mk
> +++ b/tools/Module.mk
> @@ -12,7 +12,11 @@ TOOLS_DIR	:= tools
>  TOOLS_CFLAGS	:= -Wstrict-prototypes -Wshadow -Wpointer-arith -Wcast-qual \
>  		   -Wcast-align -Wwrite-strings -Wnested-externs -Winline \
>  		   -W -Wundef -Wmissing-prototypes -Iinclude
> +ifeq ($(USE_STATIC_LIB),1)
> +TOOLS_LDFLAGS	:= $(LIB_DIR)/$(LIB_STLIBNAME)
> +else
>  TOOLS_LDFLAGS	:= -Llib -li2c
> +endif

Unrelated to your patch, but shouldn't this -Llib rather been written
-L$(LIB_DIR)?

Also it might make sense to check if USE_STATIC_LIB is set when
BUILD_STATIC_LIB isn't and complain about it?

>  
>  TOOLS_TARGETS	:= i2cdetect i2cdump i2cset i2cget
>
Wolfram Sang June 17, 2015, 10:53 a.m. UTC | #2
Hi Jean,

> > When debugging embedded systems, it is often nice to simply TFTP the
> > desired i2ctool to the target without the hazzle of dealing with shared
> > libs. Using -static is overkill, too, so let's add a switch which will
> > only link functions from libi2c statically.
> 
> Fine with me.

Hooray!

> >  BUILD_STATIC_LIB ?= 1
> > +# Uncomment to use static libi2c
> > +#USE_STATIC_LIB := 1
> 
> Any reason for not using ?= as above, with the default being unset?

Agreed.

> Unrelated to your patch, but shouldn't this -Llib rather been written
> -L$(LIB_DIR)?

Yes, makes sense.

> Also it might make sense to check if USE_STATIC_LIB is set when
> BUILD_STATIC_LIB isn't and complain about it?

For easier usage, I'd rather enforce BUILD_STATIC_LIB in that case.

Thanks,

   Wolfram
Jean Delvare June 17, 2015, 1:10 p.m. UTC | #3
On Wed, 17 Jun 2015 12:53:09 +0200, Wolfram Sang wrote:
> Hi Jean,
> 
> > > When debugging embedded systems, it is often nice to simply TFTP the
> > > desired i2ctool to the target without the hazzle of dealing with shared
> > > libs. Using -static is overkill, too, so let's add a switch which will
> > > only link functions from libi2c statically.
> > 
> > Fine with me.
> 
> Hooray!
> 
> > >  BUILD_STATIC_LIB ?= 1
> > > +# Uncomment to use static libi2c
> > > +#USE_STATIC_LIB := 1
> > 
> > Any reason for not using ?= as above, with the default being unset?
> 
> Agreed.
> 
> > Unrelated to your patch, but shouldn't this -Llib rather been written
> > -L$(LIB_DIR)?
> 
> Yes, makes sense.

OK, I'll fix it after applying your updated patch.

> > Also it might make sense to check if USE_STATIC_LIB is set when
> > BUILD_STATIC_LIB isn't and complain about it?
> 
> For easier usage, I'd rather enforce BUILD_STATIC_LIB in that case.

You mean that USE_STATIC_LIB = 1 would silently imply
BUILD_STATIC_LIB = 1? Yes, that's much better than my proposal.

I'm wondering if we should make it even more flexible, but I'm not sure
if it's worth the effort... Are you calling "make install" after that?
I guess not.
Wolfram Sang June 17, 2015, 1:20 p.m. UTC | #4
> You mean that USE_STATIC_LIB = 1 would silently imply
> BUILD_STATIC_LIB = 1? Yes, that's much better than my proposal.

Yes, I meant that.

> I'm wondering if we should make it even more flexible, but I'm not sure
> if it's worth the effort... Are you calling "make install" after that?
> I guess not.

No, I am not. I just copy the file to the TFTP dir.
diff mbox

Patch

diff --git a/Makefile b/Makefile
index 252a126..6d36f2f 100644
--- a/Makefile
+++ b/Makefile
@@ -33,6 +33,8 @@  CFLAGS		+= -Wall
 SOCFLAGS	:= -fpic -D_REENTRANT $(CFLAGS)
 
 BUILD_STATIC_LIB ?= 1
+# Uncomment to use static libi2c
+#USE_STATIC_LIB := 1
 
 KERNELVERSION	:= $(shell uname -r)
 
diff --git a/tools/Module.mk b/tools/Module.mk
index d14bb0c..8efddbb 100644
--- a/tools/Module.mk
+++ b/tools/Module.mk
@@ -12,7 +12,11 @@  TOOLS_DIR	:= tools
 TOOLS_CFLAGS	:= -Wstrict-prototypes -Wshadow -Wpointer-arith -Wcast-qual \
 		   -Wcast-align -Wwrite-strings -Wnested-externs -Winline \
 		   -W -Wundef -Wmissing-prototypes -Iinclude
+ifeq ($(USE_STATIC_LIB),1)
+TOOLS_LDFLAGS	:= $(LIB_DIR)/$(LIB_STLIBNAME)
+else
 TOOLS_LDFLAGS	:= -Llib -li2c
+endif
 
 TOOLS_TARGETS	:= i2cdetect i2cdump i2cset i2cget