tcpdump mailing list archives
Re: Need precompiled source files in libpcap
From: Yang Luo <hsluoyb () gmail com>
Date: Thu, 30 Jun 2016 12:59:13 -0700
On Thu, Jun 30, 2016 at 12:36 PM, Yang Luo <hsluoyb () gmail com> wrote:
Hi Guy, On Sat, Jun 25, 2016 at 12:09 AM, Guy Harris <guy () alum mit edu> wrote:On Jun 24, 2016, at 8:58 PM, Yang Luo <hsluoyb () gmail com> wrote:I found that there are a lot of “precompiled source code files" likegrammar.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 theNpcap 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 alsobuild 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?
OK. I found the solution. I changed the bat to: win_flex -Ppcap_ -7 --nounistd --outfile=..\scanner.c --header-file=..\scanner.h ..\scanner.l win_bison -ppcap_ --yacc --output=..\grammar.c --defines ..\grammar.y And Flex won't let the generated source filess require "unistd.h" any more.
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/735870968451629056In 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, YangAnd I think those source files are less likely to change as frequentlyas 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
Current thread:
- Need precompiled source files in libpcap Yang Luo (Jun 24)
- Re: Need precompiled source files in libpcap Guy Harris (Jun 25)
- Re: Need precompiled source files in libpcap Yang Luo (Jun 25)
- Re: Need precompiled source files in libpcap Guy Harris (Jun 25)
- Re: Need precompiled source files in libpcap Yang Luo (Jun 30)
- Re: Need precompiled source files in libpcap Yang Luo (Jun 25)
- Re: Need precompiled source files in libpcap Yang Luo (Jun 30)
- Re: Need precompiled source files in libpcap Yang Luo (Jun 30)
- Re: Need precompiled source files in libpcap Guy Harris (Jun 30)
- Re: Need precompiled source files in libpcap Yang Luo (Jun 30)
- Re: Need precompiled source files in libpcap Guy Harris (Jun 25)