Hi Guy,

On Sat, Jun 25, 2016 at 12:09 AM, Guy Harris <g...@alum.mit.edu> wrote:

> On Jun 24, 2016, at 8:58 PM, Yang Luo <hslu...@gmail.com> wrote:
>
> > I found that there are a lot of “precompiled source code files" like
> grammar.c, scanner.c, grammar.h, ,scanner.h, etc. (which are also listed in
> .gitignore). They are NOT contained in the libpcap repo.
> >
> > I personally want to ship them in the "Win32-Extensions" folder of the
> Npcap repo, so the Npcap developers can just build the "libpcap.sln"
> project with one click, and will get the wpcap.dll.
> >
> > Do you think this is a good idea? Or Windows developers should also
> build everything from the bottom?
>
> You can either
>
>         1) install Flex and Bison yourself, use them to build those files,
> and ship them with the Npcap source (along with the .y and .l files!)
>
> or
>
>         2) require that developers install Flex and Bison.
>
> You will need Flex 2.5.31 or later.  See, for example
>
>         https://sourceforge.net/projects/winflexbison/
>
> for Flex and Bison for Windows.
>

OK. I will choose option 2). Npcap developers should install Flex and Bison
on their own machine and generate those files by their own hands.
Now I have installed the latest Win-Flex-Bison on my own machine:)


>
> > I noticed this docs:
> https://github.com/the-tcpdump-group/libpcap/blob/master/INSTALL.txt, and
> it seems to require to run "./configure" (a shell script), which is for
> Linux. So I think there's no Windows alternative config command for now?
>
> The autoconf script is UN*X-only.  (It's not "for Linux", it's for Linux
> and OS X and FreeBSD and NetBSD and OpenBSD and DragonFly BSD and Solaris
> and HP-UX and AIX and even, assuming it still works, older dead UN*Xes.)
>
> We also support CMake:
>
>         https://cmake.org
>
> on both UN*X *and* Windows.
>

OK then. I think I will first create a bat file to do the work.
I have created a file named "prebuild.bat" in "libpcap\Win32", it contains
two lines:

win_flex -Ppcap_ -7 --outfile=..\scanner.c --header-file=..\scanner.h
..\scanner.l
win_bison -ppcap_ --yacc --output=..\grammar.c --defines ..\grammar.y

But I encountered an issue here, the built out scanner.h and scanner.c will
report these errors:

1>  gencode.c
1>..\scanner.h(239): fatal error C1083: Cannot open include file:
'unistd.h': No such file or directory
1>  grammar.c
1>..\scanner.h(239): fatal error C1083: Cannot open include file:
'unistd.h': No such file or directory
1>..\scanner.c(2787): fatal error C1083: Cannot open include file:
'unistd.h': No such file or directory

It seems that these generated source files want to include a UN*X only file
"unistd.h", which is not available on Windows, like you said in the next
reply. I think I need to switch some options to let Flex not use
"unistd.h", how to do it?

When this bat is done, I think I will make MSVC run this bat every time
before a build process starts, is this solution OK for you?



>
> > And installing flex and bison for Windows are not also very friendly.
>
>         https://twitter.com/geraldcombs/status/735870968451629056


In fact I didn't catch the meaning very well.. What's a "IKEA motorcycle
engine"? I think "IKEA" is a furniture vendor? What does it has to do with
the motorcycle engine? Does it mean that building open source on Windows is
very painful and inconvenient?


Cheers,
Yang



>
>
> > And I think those source files are less likely to change as frequently
> as other sources.
>
> That is not necessarily true.  Any time new operators are added to the
> packet filter language, either scanner.l or grammar.y or both will be
> changed.


> > I think just ship them in Npcap repo will be a good idea?
>
> We won't be putting the generated versions into the libpcap repository,
> and I would *not* recommend putting them into the Npcap repository.  *If*
> you want to provide the generated source files in the Npcap source release,
> as they're provided in libpcap source releases, I would recommend that you
> generate them as part of the process of building an Npcap source release.
_______________________________________________
tcpdump-workers mailing list
tcpdump-workers@lists.tcpdump.org
https://lists.sandelman.ca/mailman/listinfo/tcpdump-workers

Reply via email to