Date: Wed, 28 Jun 2000 11:36:37 -0400
    From: "Moyle, Ed (PCA)" <[EMAIL PROTECTED]>

    Well, the problem is that I am compiling on WinNT using msvc (I know, I
    know... they make me.)  Since it's NT, I can't do any symbolic linking...
    Plus, I work on a product that uses a directory structure and build options
    that I don't get to change very easily (the build group can't handle too
    many changes at once).  Any "vendor" (openSSL in this case) incs have to be
    in a directory that is a peer of the code I am writing.  Making it #include
    <openssl/xyz.h> forces me to either change them all back to the way they
    used to be (i.e. witout the "openssl/", go back to SSLeay0.9.0.b, or spend
    6-8 weeks of writing supporting documentation to petition the powers that be
    to change "the way it is" so that I can get the changes made to use OpenSSL
    (try justifying this to somebody who doesn't know anything about it).

Sounds like it's time to change jobs.

What in the world are you going to do about building other things that
also have their own ideas about where to put include files?  Keeping
these in separate directories certainly -seems- to be the cleanest way
to do it, especially when it's time to change versions.

But if you really can't change anything about your build environment,
you could fairly trivially write a script to change all occurrences of
<openssl/whatever.h> into something without the openssl.  This is
probably about 5 lines of Perl.  (Make sure it looks for "^#include
<openssl/.+>", e.g., that the string is in fact something that looks
like an include line, which starts at the left margin.  I hope that
OpenSSL doesn't have anything like that in a string constant at the
left margin---presumably that would choke any preprocessor anyway.)

One way to do this without writing any code at all is to use Emacs,
which does run under NT, though I don't recommend this unless you're
already an Emacs user.  First, make a tags table (with etags) of all
the OpenSSL sources.  Visit the tags table.  Then do something like
this (untested!)

  M-X tags-query-replace RET ^#include <openssl/\(.+\)> RET
  #include <\1> RET !

...and that should replace everything.  (You could type a couple
spaces before the ! to make sure it's doing the right thing...:)

Then C-U M-X save-some-buffers and they're all saved.

Yes, this means you have a merging problem when you import a new
release.  On the other hand, you can always undo this operation in
your source tree right before the merge, and then redo it afterwards
again.  Yes, this is a pain.  But how often do you import a new
release?  This should take you about 5 minutes in either direction,
modulo maybe Emacs walking lots of files, which can happen while
you're doing something else.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to