Dcmtk's build system and directory structure

Compilation and installation of DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
yiorgos
Posts: 9
Joined: Thu, 2016-11-10, 12:53

Dcmtk's build system and directory structure

#1 Post by yiorgos »

Ηi,

I want to implement a new dcmtk's module, It would be nice to use the directory structure and the build system of dcmtk
in order to automate the procedure.

So is anyone available in giving a short tutorial on that?

The module I'm trying to implement will allow dcmtk to optionally send dicom messages received, through HTTP protocol to a WADO/QUIDO/STOW - RS server.

Thanks,

yiorgos
Posts: 9
Joined: Thu, 2016-11-10, 12:53

Re: Dcmtk's build system and directory structure

#2 Post by yiorgos »

In order not opening a new thread a post a second question here.

Which make (or generally build command) should I use in order to recompile a dcmtk's static libraries.

The use case is that I make changes to file "dcmnet/libsrc/dimstore.cc" which when compiled is linked with "libdcmnet.a".
I execute command "make" to build again but it seems that though the file is recompiled and linked the changes have no effect and executables using "libdcmnet" use the old version of it.

The work around I have found is to make clean -> make all but it's a lot painful I have to say.

Does anyone know any better/faster/more appropriate solution?


Kind regads,

Jan Schlamelcher
OFFIS DICOM Team
OFFIS DICOM Team
Posts: 318
Joined: Mon, 2014-03-03, 09:51
Location: Oldenburg, Germany

Re: Dcmtk's build system and directory structure

#3 Post by Jan Schlamelcher »

This seems like a bug as it normally shouldn't happen. Are you perhaps using a network drive where the server might use different timestamps than the client etc.?

yiorgos
Posts: 9
Joined: Thu, 2016-11-10, 12:53

Re: Dcmtk's build system and directory structure

#4 Post by yiorgos »

Jan Schlamelcher wrote:This seems like a bug as it normally shouldn't happen. Are you perhaps using a network drive where the server might use different timestamps than the client etc.?
Unfortunately No! The whole building process is being held on my pc.

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Dcmtk's build system and directory structure

#5 Post by J. Riesmeier »

If you use GNU Autoconf (aka "./configure"): there are no dependencies in the "apps/Makefile.dep" file for the respective libraries.

yiorgos
Posts: 9
Joined: Thu, 2016-11-10, 12:53

Re: Dcmtk's build system and directory structure

#6 Post by yiorgos »

J. Riesmeier wrote:If you use GNU Autoconf (aka "./configure"): there are no dependencies in the "apps/Makefile.dep" file for the respective libraries.
I'm not so sure if I have understand your point of view :oops:

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Dcmtk's build system and directory structure

#7 Post by J. Riesmeier »

The "Makefile.dep" files in the "apps" subdirectory do not contain any reference to the library files (e.g. "libdcmnet.a"). In other words, if the "libdcmnet.a" changes, the command line tools in "dcmnet/apps" are not re-linked.

yiorgos
Posts: 9
Joined: Thu, 2016-11-10, 12:53

Re: Dcmtk's build system and directory structure

#8 Post by yiorgos »

J. Riesmeier wrote:The "Makefile.dep" files in the "apps" subdirectory do not contain any reference to the library files (e.g. "libdcmnet.a"). In other words, if the "libdcmnet.a" changes, the command line tools in "dcmnet/apps" are not re-linked.
Weeeeell that's the problem! Thanks.
Is there a workaround for this?

Could it be possible to avoid make clean and make all?

I suppose not

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Dcmtk's build system and directory structure

#9 Post by J. Riesmeier »

A workaround would be to delete (remove) the executable binary and call "make". Alternatively, you could call "make clean all" in the affected directory, e.g. "(cd dcmnet/apps/ && make clean all)".

PS: I don't hink that this is a "bug" as Jan assumed. At least this is the behavior of the DCMTK Makefiles for more than 20 years now ;)

yiorgos
Posts: 9
Joined: Thu, 2016-11-10, 12:53

Re: Dcmtk's build system and directory structure

#10 Post by yiorgos »

J. Riesmeier wrote:A workaround would be to delete (remove) the executable binary and call "make". Alternatively, you could call "make clean all" in the affected directory, e.g. "(cd dcmnet/apps/ && make clean all)".

PS: I don't hink that this is a "bug" as Jan assumed. At least this is the behavior of the DCMTK Makefiles for more than 20 years now ;)
No, I don't think either that this is a bug. Can be better categorized as feature :mrgreen:

Thanks a lot J.

PS: It would be nice to give us a short introduction to DCMTK build module system :D

Michael Onken
DCMTK Developer
Posts: 2048
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

Re: Dcmtk's build system and directory structure

#11 Post by Michael Onken »

Just one note from the side: Did you look at the Orthanc DICOM server. It offers a DICOM web plugin, is open source and DCMTK-based, too. I guess it also implements some client features. Maybe you can join forces with the Orthanc author(s).

HTH, Michael

J. Riesmeier
DCMTK Developer
Posts: 2501
Joined: Tue, 2011-05-03, 14:38
Location: Oldenburg, Germany
Contact:

Re: Dcmtk's build system and directory structure

#12 Post by J. Riesmeier »

It would be nice to give us a short introduction to DCMTK build module system
Please have a look at the documentation of the "config" module.

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 1 guest