Hi Jim,

dmake is not simple. I do know nothing Jim Jagielski...

Today the build system enjoys me with


checking whether the found dmake is the right dmake... configure: WARNING: no

or

configure: error: no URL for dmake source code specified, either. Use --with-dmake-url to supply an URL; run configure with the --help option for a list of possible URLs. ./configure.sh: Zeile 22: --with-dmake-url=https://sourceforge.net/projects/oooextras.mirror/files/dmake-4.12.tar.bz2: Datei oder Verzeichnis nicht gefunden

but:

wget https://sourceforge.net/projects/oooextras.mirror/files/dmake-4.12.tar.bz2 dmake-4.12.tar.bz2 100%[==================================================================================================================================================================>] 490,31K  92,2KB/s    in 5,3s


I am frustrated and will continue, when I had a break. Maybe then I figure out what stupidity I do not see.


All the Best

Peter

Am 23.04.20 um 15:48 schrieb Jim Jagielski:
IMO, dmake is simply a build-and-compile dependency. Considering that we pull 
in lots of other external dependencies, keeping or dropping dmake will likely 
not make any real difference in the people we can attract to help develop, test 
and build AOO. At the very least, we know what dmake is good at, and what it is 
NOT good at; so I support porting as much as possible to gmake, and just using 
dmake as the last step.

And, FWIW, I am keeping dmake up-to-date and even FreeBSD are using my repo 
now: https://github.com/jimjag/dmake

On Apr 17, 2020, at 8:53 AM, Peter Kovacs <pe...@apache.org> wrote:

The goal is to move away from dmake. I do struggle with your point of view, 
saying moving away from dmake is unimportant, and should be stopped.

I disagree with this position.


Am 16.04.20 um 23:04 schrieb Patricia Shanahan:

On 4/15/2020 10:08 AM, Damjan Jovanovic wrote:
On Wed, Apr 15, 2020 at 3:15 PM Jim Jagielski <j...@jagunet.com> wrote:


On Apr 15, 2020, at 3:01 AM, Damjan Jovanovic <dam...@apache.org> wrote:


We are also thin on new contributors, and I recall you saying they're
largely scared off by the current build system.

Two points:

    1. I doubt that by the time we finish porting to a whole new build
system, we will even have anyone *wanting* to contribute. With each delay
and push-out on releases, and more time spent working on the build system
instead of AOO itself, we become less and less relevant. Is that really a
priority we should be focusing on? Are the number of people knowledgeable
around scons really greater than what we have now? But I could be wrong,
which leads me to #2...


What would you recommend we focus on instead then?
I would recommend going for robustness, rather than new features. I know of 
some areas for potential improvement:

Array bounds checking, especially during input processing.

Memory allocation checking.

Debug profile corruption.

Ideally, new contributors wouldn't need to be knowledgeable about scons.
The build should be easier to perform, hopefully just "./configure"
followed by "scons" (and scons even implements features that can subsume
./configure too). Already, scons doesn't need the "source winenv.set.sh"
and "cd instsetoo_native" steps to build its modules.


    2. "The conversion from gbuild to scons would largely be automated, fast
and correct." If that is the case, let's test that theory right now.

This has been possible for some time. In the scons-build branch, you can do
the following:

$ cd gotoSCons
$ mvn package
$ java -cp target/gotoSCons-0.1-SNAPSHOT.jar
org.apache.openoffice.gotoSCons.GBuildConverter parsingAnalysis ../main
(per-module output)
Could parse: [MathMLDTD, UnoControls, animations, cosv, cppcanvas,
drawinglayer, eventattacher, fileaccess, i18nutil, idl, io, rdbmaker,
registry, remotebridges, sane, store, svgio, twain, ucbhelper, unixODBC,
xmlreader, xmlscript]
22 out of 105 gbuild modules are parseable

That means 22 modules can already be converted, completely and correctly.
As we add more features to the converter (AllLangResTarget, UnoApi, Junit,
GoogleTest, etc.), that 22 will increase.

The per-module gbuild files are easy to parse. Parsing the syntax takes
only 3 methods and < 100 lines of Java. The non-deterministic ones with
"ifeq ($(GUIBASE),aqua)" require some manual work, but even there, a lot
can be automated. There is some more work involved in semantic conversion:
understanding and converting specific gbuild commands, converting paths to
scons format, etc. but even so, we're on just 1913 lines of code in total
for the converter.

The hard part is to convert gbuild functions in main/solenv/gbuild into
scons, for example, the worst case scenario is AllLangResTarget, for which
this monstrous dependency tree needs to be implemented, with 4 layers of
intermediate targets and complex actions with side effects and header
dependencies (not shown):

#                          AllLangResTarget(name)
#                      (meta-target; delivers an empty timestamp file)
#                            ^             ^
#                           /               \
#                          /                 \
#                         /                   \
#      ResTarget(nameen-US,name,en-US)
ResTarget(nameen-GB,name,en-GB)
#      $(WORKDIR)/ResTarget/$(resName).res
$(WORKDIR)/ResTarget/$(resName).res
#      $(WORKDIR)/ResTarget/nameen-US.res
   $(WORKDIR)/ResTarget/nameen-GB.res
#        ^ ^                        ^
#        | rsc |                        |
#        | |                        |
#      SrsTarget                               SrsTarget
SrsTarget
#      $(WORKDIR)/SrsTarget/$(srsName).srs
#      $(WORKDIR)/SrsTarget/uui/res.srs
#        ^
#        | concatenate
#        +----------+
#        |           \
#        |            \
#      SrcPartTarget   SrcPartTarget
#                      $(WORKDIR)/SrsPartTarget/$(srsPartName)
# $(WORKDIR)/SrsPartTarget/uui/source/ids.src
#                        ^                   ^
#                        | rsc               | rsc
#                        |                   |
# (when not translating) |                   | (when translating)
#                        |                   |
#                        |                SrcPartMergeTarget
#                        | $(WORKDIR)/SrsPartMergeTarget/$(1)
#                        |
   $(WORKDIR)/SrsPartMergeTarget/uui/source/ids.src
#                        |                 ^
#                        |                /
#                        |               / transex3
#                        |              / (when translating)
#                      $(srsPartName)  /
#                      uuid/source/ids.src
#

Damjan

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org
For additional commands, e-mail: dev-h...@openoffice.apache.org

Reply via email to