Closed Bug 122115 Opened 23 years ago Closed 23 years ago

get autoconf build system working with current C SDK

Categories

(Directory :: LDAP C SDK, defect, P1)

defect

Tracking

(Not tracked)

VERIFIED FIXED
mozilla1.0

People

(Reporter: dmosedale, Assigned: dmosedale)

References

Details

Attachments

(1 file, 12 obsolete files)

28.85 KB, patch
netscape
: review+
Details | Diff | Splinter Review
Here's a first cut at updating the C SDK tip so that it can build using
autoconf.  Stuff that I still need to look into: 

Understand genMakefile.client and existing Makefiles (not Makefile.clients).

Test without an objdir.

Implement --with-system-nspr.
I do not think anything or anyone uses the existing Makefiles (the Netscape
server and Sun builds use Makefile.client).

genMakefile.client is used to create new .def files for Windows DLLs and .exp
files for MacOS builds. On UNIX (last I knew) we generate the necessary linker
export file on the fly using a Perl script.  We should get rid of
genMakefile.client and do this on the fly always.
Attached patch SDK autoconf build patch, v2 (obsolete) — Splinter Review
* Added a (not-yet-working) Makefile.in to ldap/tools/clients.
* Added aclocal.m4 in preparation for --with-system-nspr
* Got rid of some NSPR-specific stuff in config/
* Copied config/autoconf/nspr.m4 from the toplevel locally in preparation for
--with-system-nspr
Attachment #66688 - Attachment is obsolete: true
Status: NEW → ASSIGNED
* Added .cvsignore files for srcdir builds
* Build the config subdir automagically
* Include component_versions.mk in all cases, not just HAVE_CCONF
* Add code for --without-system-nspr to configure.in; not yet working
* Clean up autoconf.mk.in and merge in recent changes from nsprpub version to
pick up --with-dist-prefix changes
* Add altoptions.m4 to allow for --without-system-nspr
Attachment #67012 - Attachment is obsolete: true
* configure.in: mkdir ldap/client by hand for objdir builds
* config/autoconf.mk.in: got rid of NO_MDUPDATE, as this should no 
  longer be necessary
* ldap/build/Makefile.in: fixed executable name bug & srcdir bug
* ldap/client/tools/Makefile.in: fixed MOD_DEPTH issue
* ldap/include/portable.h, ldap/libraries/libldap/{tmplout,request}.c:
  removed unnecessary linux build change
* excised unused cruft from configure.in/autoconf.mk.in
* updated README.configure
Attachment #67341 - Attachment is obsolete: true
(rising from the ashes)  I did a bunch of work on this a _while_ ago.  dmose
convinced me that I have too much free time, and should finish what I started...

I don't have NT compilers right now, so I am limiited to *nix builds.

--chuck
This update removes a "Makefile" which shouldn't have been part of the previous
diff, and fixes the manual mkdir stuff for ldap/clients/tools in an objdir (but
gets it right this time :-).
Attachment #67838 - Attachment is obsolete: true
Previous patch didn't include the file removals.
Attachment #67973 - Attachment is obsolete: true
Install libldap50.so into $(dist_bindir) also, because the client is lame
enough to require it there.
Attachment #68024 - Attachment is obsolete: true
Looking at v7,

Wrt USE_AUTOCONF ifdefs in build.mk, wouldn't it be less confusing to just add
AR_FLAGS to the default rules?  They should be unset for the non-autoconf case.

You shouldn't need altoptions.m4 to handle --without-system-nspr.  You could use
AC_ARG_WITH instead of MOZ_ARG_WITHOUT_BOOL.  The custom moz macro really
doesn't by you anything unless you're planning on making a build configurator
script similar to the one for Mozilla.

You might want to use a $(LIB_PREFIX) to cleanly handle the fact that Win32 and
OS/2 don't use 'lib' in their non-gcc builds.

The rest of the changes look ok but I haven't tested the patch.  (I'm going to
pretend that I didn't see all of those platform ifdefs.)


Blocks: 124244
Fixes the AR_FLAGS and --with-nspr stuff mentioned by cls.  I left the
LIB_PREFIX alone for the moment, because right now I'm trying to deviate from
the original Makefile.client files as little as possible, and they already do
solve this problem, though not as cleanly as LIB_PREFIX would.
Attachment #68199 - Attachment is obsolete: true
Added back COMPVERSIONSDIR to build.mk at the request of mcs so that it can be
overridden from the command-line by vendors.
Attachment #68961 - Attachment is obsolete: true
The build.mk changes contained in the v9 patch look fine to me. I don't think
any of the other changes will affect builds that do not use autoconf.
Comment on attachment 69099 [details] [diff] [review]
autoconf patch for ldapcsdk branch, v9

Little nits:
In c-sdk/config/Makefile.in, why is OS2 being removed from the PROG_SUFFIX=.exe
list? Likewise for the targets list & nsinstall.c .  We really don't need to
build multiple versions of nsinstall, especially since all of the port changes
haven't been propogated. 

Altoptions.m4/MOZ_BOOL is still being used.

In ldap/include/Makefile.in, you should use $(PERL) instead of perl.
Attachment #69099 - Flags: needs-work+
In my last patch, I did the "cvs diff" the wrong tree.	Sorry about that.  This
patch fixes the perl -> $(PERL) thing, and all the other things should be fixed
by virtue of the fact that this time I diffed the right tree.
Attachment #69099 - Attachment is obsolete: true
Attachment #69310 - Attachment description: autoconf patch for ldapcsdk branch, v9 → autoconf patch for ldapcsdk branch, v10
Comment on attachment 69310 [details] [diff] [review]
autoconf patch for ldapcsdk branch, v10

r=cls
Attachment #69310 - Flags: review+
v10 patch has been checked in.  next step: test on windows, and make any
necessary mods for that.
Attached patch autoconf patch for windows, v1 (obsolete) — Splinter Review
Attachment #69310 - Attachment is obsolete: true
OK, this latest patch makes it build on windows and hopefully doesn't break
anything on any other platform.  Currently, if using |gmake| rather than |make|
on Windows, it needs to be called with "SHELL=bash" on command-line to gmake.
QA Contact: nobody → yulian
Comment on attachment 70584 [details] [diff] [review]
autoconf patch for windows, v1

In gmakefile.win, you should use $(MAKE) to invoke additonal make processes
rather than hardcoding gmake.  Fix that && r=cls
Attachment #70584 - Flags: review+
Keywords: mozilla1.0
Priority: -- → P1
Target Milestone: --- → mozilla1.0
Attached patch autoconf patch for windows, v2 (obsolete) — Splinter Review
With cls' requested change.
Attachment #70584 - Attachment is obsolete: true
Comment on attachment 71753 [details] [diff] [review]
autoconf patch for windows, v2

Carrying forward cls' has-review bit.
Attachment #71753 - Flags: review+
Fixes all platforms to give a reasonable default to $(DIST) that works when
running configure without arguments.
Attachment #71753 - Attachment is obsolete: true
Comment on attachment 71756 [details] [diff] [review]
autoconf patch for windows, v3

r=cls
Attachment #71756 - Flags: review+
Windows fix checked in.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Verified with 20020320 trunk builds on various platforms. Autocomplete and
addressbook search work well.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: