This is how the bsd port builds taucs:


50      post-configure:
51              @${CP} -r ${WRKSRC} ${WRKSRC}_SHARED
52      
53      archives: configure
54              @${PRINTF} "\n\n%s\n\n\n" "Building libtaucs archives:"
55              (cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
56                      ${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} 
lib/FreeBSD/libtaucs.a)
57              (cd ${WRKSRC}_SHARED && ${SETENV} ${MAKE_ENV} 
PICFLAG="${PICFLAG}" \
58                      ${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} 
lib/FreeBSD/libtaucs.a)
59      
60      lib: archives
61              @${PRINTF} "\n\n%s\n\n\n" "Building shared library:"
62              (cd ${WRKSRC}_SHARED/lib/FreeBSD && \
63                      ${FC} ${CFLAGS} ${PICFLAG} ${LDFLAGS} -shared \
64                      -o libtaucs.so.1 -Wl,-x -Wl,-soname,libtaucs.so.1 \
65                      -Wl,--whole-archive libtaucs.a -Wl,--no-whole-archive)
66              ${STRIP_CMD} ${WRKSRC}_SHARED/lib/FreeBSD/libtaucs.so.1
67      
68      bins: lib
69              @${PRINTF} "\n\n%s\n\n\n" "Building (dynamically-linked) 
executables:"
70      #for the second pass through WRKSRC_SHARED, use a nonexistent 
MAKEOBJDIR to
71      #prevent make from entering the obj subdirectories and breaking the 
build (see,
72      #for example, the description of .OBJDIR in make(1)):
73              (cd ${WRKSRC}_SHARED && \
74                      ${SETENV} ${MAKE_ENV} MAKEOBJDIR="${NONEXISTENT}" \
75                      ${MAKE} ${_MAKE_JOBS} ${MAKE_ARGS} 
${BINS:S|^|bin/FreeBSD/|})
76      
77      do-build: bins

lib:archives builds the dynamic library, $(PICFLAG) is defined as


.if ${ARCH} == "sparc64"
39      PICFLAG?=       -fPIC
40      .else
41      PICFLAG?=       -fpic
42      .endif


bins:lib builds the executables defined as

BINS?=          direct iter taucs_run

I don’t know how to do all this with macports default build.


Mark Brethen
[email protected]



> On Nov 25, 2018, at 11:52 PM, Ryan Schmidt <[email protected]> wrote:
> 
> 
> 
> On Nov 25, 2018, at 13:55, Mark Brethen wrote:
> 
>> I think their build process requires overriding the build phase in macports.
> 
> Why do you think that?
> 
> Their build process has no idea how their build process is being invoked. It 
> should make no difference to their build process whether a command is called 
> by the standard MacPorts build phase or by you manually running a command 
> with system. But allowing MacPorts to use the standard build phase is almost 
> always what you want to do, so that you can benefit from all of the 
> conveniences that it offers.

Reply via email to