libpd / puredatap5

Tentative Processing support for libpd; use at your own risk.
GNU General Public License v2.0
60 stars 11 forks source link

Add support for command line ant builds #4

Closed heuermh closed 11 years ago

heuermh commented 11 years ago

Executing ant from the command line from the PureDataP5 directory fails:

$ ant -buildfile resources/build.xml -propertyfile resources/build.properties 
Buildfile: /Users/xxx/working/puredatap5/PureDataP5/resources/build.xml

init:
     [echo] ------------------------------------------------------------------------------------------------
     [echo]     Building the Processing library PureData 1
     [echo] ------------------------------------------------------------------------------------------------
     [echo]     src path        /Users/xxx/working/puredatap5/PureDataP5/src
     [echo]     bin path        /Users/xxx/working/puredatap5/PureDataP5/bin
     [echo]     classpath.local /Users/xxx/Documents/workspace/libs
     [echo]     sketchbook      /Users/xxx/Documents/Processing
     [echo]     java version    1.6
     [echo] ------------------------------------------------------------------------------------------------
     [echo]     

library.init:
     [echo] init library ...

library.run:
     [echo] building library ...

generate.structure:
   [delete] Deleting directory /Users/xxx/working/puredatap5/PureDataP5/tmp
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/library
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/examples
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/reference
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/src
     [copy] Copying 2 files to /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/examples
     [copy] Copying 1 file to /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/src
     [copy] Copying 14 files to /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/library

generate.source:

generate.source.win:

generate.source.nix:
     [echo] generating source (mac/linux) ...

parse.file:
     [echo] /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/src/org/puredata/processing/PureData.java

compile:
    [javac] Compiling 1 source file to /Users/xxx/working/puredatap5/PureDataP5/bin

BUILD FAILED
/Users/xxx/working/puredatap5/PureDataP5/resources/build.xml:107: The following error occurred while executing this line:
/Users/xxx/working/puredatap5/PureDataP5/resources/build.xml:141: /Users/xxx/Documents/workspace/libs does not exist.

Total time: 0 seconds

It also fails from the resources directory:

$ ant
Buildfile: /Users/xxx/working/puredatap5/PureDataP5/resources/build.xml

init:
     [echo] ------------------------------------------------------------------------------------------------
     [echo]     Building the Processing library PureData 1
     [echo] ------------------------------------------------------------------------------------------------
     [echo]     src path        /Users/xxx/working/puredatap5/PureDataP5/src
     [echo]     bin path        /Users/xxx/working/puredatap5/PureDataP5/bin
     [echo]     classpath.local /Users/xxx/Documents/workspace/libs
     [echo]     sketchbook      /Users/xxx/Documents/Processing
     [echo]     java version    1.6
     [echo] ------------------------------------------------------------------------------------------------
     [echo]     

library.init:
     [echo] init library ...

library.run:
     [echo] building library ...

generate.structure:
   [delete] Deleting directory /Users/xxx/working/puredatap5/PureDataP5/tmp
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/library
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/examples
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/reference
    [mkdir] Created dir: /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/src
     [copy] Copying 2 files to /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/examples
     [copy] Copying 1 file to /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/src
     [copy] Copying 14 files to /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/library

generate.source:

generate.source.win:

generate.source.nix:
     [echo] generating source (mac/linux) ...

parse.file:
     [echo] /Users/xxx/working/puredatap5/PureDataP5/tmp/PureData/src/org/puredata/processing/PureData.java

compile:
    [javac] Compiling 1 source file to /Users/xxx/working/puredatap5/PureDataP5/bin

BUILD FAILED
/Users/xxx/working/puredatap5/PureDataP5/resources/build.xml:107: The following error occurred while executing this line:
/Users/xxx/working/puredatap5/PureDataP5/resources/build.xml:141: /Users/xxx/Documents/workspace/libs does not exist.

Total time: 0 seconds

The build should be self-contained, i.e. it should not be looking outside of the working directory for resources, such as Documents/workspace/libs.

Including the Processing core jar in the lib directory is perhaps not the best way to solve the issue, but it makes the build self-contained and reproducible.

nettoyeurny commented 11 years ago

Sorry about the tardy reply; this pull request totally slipped through the cracks. In the future, don't hesitate to email me if you need me to look at something.

Anyway, the pull request looks good, except I don't see the need for different directories for 32bit and 64bit Mac. Why don't we just build universal binaries?

heuermh commented 11 years ago

The second set of commits (20a20d0 and 1cb19c1) were an attempt to fix Issue #2, see my comments on that thread.

I know java & processing well but am not so good at the native stuff, so I am just grasping at straws with those.

nettoyeurny commented 11 years ago

It looks to me like your 32bit branch contains universal binaries for both libpd and PortAudio. You can probably call that one macosx, like before, and get rid of the 64bit directory. Then the binaries should work on both architectures.

Also, somewhere along the way I saw a comment about PureDataP5 failing with a complaint about PdBase.implementsAudio() returning false. If that's still a problem, make sure to build the libpd binary from the portaudio branch at GitHub.

heuermh commented 11 years ago

most recent clone from upstream works for me, so I'm closing this pull request and will try to merge my fork