[Click] Patch: nsclick as a dynamic library

Michael Voorhaen michael.voorhaen at ua.ac.be
Thu Mar 2 08:30:23 EST 2006


Hi,

I've manually made the changes to Click CVS and it works fine.

Michael

On Thursday 02 March 2006 13:28, Bart Braem wrote:
> Hello,
>
> For those of you who do not like recompiling ns with every change in Click
> this might be an interesting patch. This one is against Click 1.4.3 but I
> guess it should be very similar for Click CVS.
>
> To use it you should apply the patch (of course). Afterwards you should
> certainly remove /ns/libnsclick.a and do a make clean in Click. Then run
> your configure again and the new Makefile is generated.
> Then you should either remove ns and nse or do a make clean in the ns
> distribution if you want to be very sure. Running make in the ns directory
> will then make your new ns that load Click dynamically.
> In order to run ns you should either install the library system wide, add
> it to ld.so.conf (and run ldconfig) or use LD_LIBRARY_PATH.
> I use that one, so going to tcl/ex in the ns distribution one should run
> Click as follows:
> LD_LIBRARY_PATH=/somepathtoyourclickslashns/ ../../ns
> nsclick-simple-lan.tcl
> Try changing something in Click, run make in click/ns and run ns: without
> recompiling ns you should be able to use the changed Click!
>
> Any comments welcome, as usual
> Bart
>
> --- ns/Makefile.in.orig 2006-03-02 13:09:36.000000000 +0100
> +++ ns/Makefile.in      2006-03-01 11:35:19.000000000 +0100
> @@ -29,13 +29,13 @@
>  .SUFFIXES: .S .c .cc .o .s .ii
>
>  .c.o:
> -       $(COMPILE) -c $<
> +       $(COMPILE) -c -fpic $<
>  .s.o:
> -       $(COMPILE) -c $<
> +       $(COMPILE) -c -fpic $<
>  .S.o:
> -       $(COMPILE) -c $<
> +       $(COMPILE) -c -fpic $<
>  .cc.o:
> -       $(CXXCOMPILE) -c $<
> +       $(CXXCOMPILE) -c -fpic $<
>  .cc.ii:
>         $(CXXCOMPILE) -E $< > $@
>
> @@ -79,11 +79,10 @@
>  CCLD = $(CC)
>  LINK = $(CCLD) $(CFLAGS) $(LDFLAGS) -o $@
>
> -all: libnsclick.a
> +all: libnsclick.so
>
> -libnsclick.a: Makefile $(LIBOBJS) $(OBJS)
> -       $(AR_CREATE) libnsclick.a $(LIBOBJS) $(OBJS)
> -       $(RANLIB) libnsclick.a
> +libnsclick.so: Makefile $(LIBOBJS) $(OBJS)
> +       $(CXX) -shared -o libnsclick.so $(LIBOBJS) $(OBJS)
>
>  Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
>         cd $(top_builddir) \
> @@ -105,14 +104,14 @@
>  include $(DEPFILES)
>  endif
>
> -install: libnsclick.a
> +install: libnsclick.so
>         $(mkinstalldirs) $(DESTDIR)$(libdir)
> -       $(INSTALL) libnsclick.a $(DESTDIR)$(libdir)/libnsclick.a
> +       $(INSTALL) libnsclick.so $(DESTDIR)$(libdir)/libnsclick.so
>  uninstall:
> -       /bin/rm -f $(DESTDIR)$(libdir)/libnsclick.a
> +       /bin/rm -f $(DESTDIR)$(libdir)/libnsclick.so
>
>  clean:
> -       rm -f *.d *.o elements.mk elements.cc elements.conf libnsclick.a
> +       rm -f *.d *.o elements.mk elements.cc elements.conf libnsclick.so
>  distclean: clean
>         -rm -f Makefile

-- 
========================================================
Michael Voorhaen
========================================================
Phd Student
Dept. of Mathematics and Computer Sciences
PATS (Performance Analysis of Telecommunication Systems)
University of Antwerp
Middelheimlaan 1
2020 Antwerpen, Belgium
Building G
G2.36
Phone: +32 (0)3 265.35.19.
Fax: +32 (0)3 265.37.77.
Mail: michael.voorhaen at ua.ac.be
Web: www.pats.ua.ac.be
========================================================


More information about the click mailing list