Showing preview only (1,005K chars total). Download the full file or copy to clipboard to get everything.
Repository: threerings/openvpn-auth-ldap
Branch: master
Commit: dbc13845739c
Files: 133
Total size: 960.8 KB
Directory structure:
gitextract_0wwnmpk9/
├── .gitignore
├── AuthLDAP.xcodeproj/
│ ├── project.pbxproj
│ └── project.xcworkspace/
│ └── contents.xcworkspacedata
├── LICENSE
├── Makefile.in
├── Mk/
│ ├── autoconf.mk.in
│ ├── compile.mk.in
│ └── subdir.mk.in
├── README.md
├── aclocal.m4
├── auth-ldap.conf
├── config.guess
├── config.sub
├── configure.ac
├── docs/
│ ├── Makefile.in
│ ├── doxyfile.in
│ ├── resources/
│ │ └── docbook.css
│ └── xml/
│ └── auth-ldap.xml
├── framework.m4
├── install-sh
├── mkinstalldirs
├── platform.m4
├── pthread.m4
├── regen.sh
├── src/
│ ├── Makefile.in
│ ├── PXObjCRuntime.h
│ ├── TRAccountRepository.h
│ ├── TRArray.h
│ ├── TRArray.m
│ ├── TRAuthLDAPConfig.h
│ ├── TRAuthLDAPConfig.m
│ ├── TRAutoreleasePool.h
│ ├── TRAutoreleasePool.m
│ ├── TRConfig.h
│ ├── TRConfig.m
│ ├── TRConfigLexer.h
│ ├── TRConfigLexer.re
│ ├── TRConfigParser.lemon
│ ├── TRConfigToken.h
│ ├── TRConfigToken.m
│ ├── TREnumerator.h
│ ├── TREnumerator.m
│ ├── TRHash.h
│ ├── TRHash.m
│ ├── TRLDAPAccountRepository.h
│ ├── TRLDAPAccountRepository.m
│ ├── TRLDAPConnection.h
│ ├── TRLDAPConnection.m
│ ├── TRLDAPEntry.h
│ ├── TRLDAPEntry.m
│ ├── TRLDAPGroupConfig.h
│ ├── TRLDAPGroupConfig.m
│ ├── TRLDAPSearchFilter.h
│ ├── TRLDAPSearchFilter.m
│ ├── TRLocalPacketFilter.h
│ ├── TRLocalPacketFilter.m
│ ├── TRLog.h
│ ├── TRLog.m
│ ├── TRObject.h
│ ├── TRObject.m
│ ├── TRPFAddress.h
│ ├── TRPFAddress.m
│ ├── TRPacketFilter.h
│ ├── TRPacketFilter.m
│ ├── TRString.h
│ ├── TRString.m
│ ├── TRVPNPlugin.h
│ ├── TRVPNSession.h
│ ├── TRVPNSession.m
│ ├── asprintf.c
│ ├── auth-ldap.m
│ ├── base64.c
│ ├── base64.h
│ ├── hash.c
│ ├── hash.h
│ ├── openvpn-cr.c
│ ├── openvpn-cr.h
│ ├── strlcpy.c
│ ├── strlcpy.h
│ ├── testplugin.c
│ ├── xmalloc.c
│ └── xmalloc.h
├── tests/
│ ├── Makefile.in
│ ├── PXTestAssert.h
│ ├── PXTestAssert.m
│ ├── PXTestCase.h
│ ├── PXTestCase.m
│ ├── PXTestCaseRunner.h
│ ├── PXTestCaseRunner.m
│ ├── PXTestConsoleResultHandler.h
│ ├── PXTestConsoleResultHandler.m
│ ├── PXTestException.h
│ ├── PXTestException.m
│ ├── PXTestObjC.h
│ ├── PXTestResultHandler.h
│ ├── TRArrayTests.m
│ ├── TRAuthLDAPConfigTests.m
│ ├── TRAutoreleasePoolTests.m
│ ├── TRConfigLexerTests.m
│ ├── TRConfigTests.m
│ ├── TRConfigTokenTests.m
│ ├── TRHashTests.m
│ ├── TRLDAPAccountRepositoryTests.m
│ ├── TRLDAPConnectionTests.m
│ ├── TRLDAPEntryTests.m
│ ├── TRLDAPGroupConfigTests.m
│ ├── TRLDAPSearchFilterTests.m
│ ├── TRLocalPacketFilterTests.m
│ ├── TRObjectTests.m
│ ├── TRPFAddressTests.m
│ ├── TRStringTests.m
│ ├── TRVPNSessionTests.m
│ ├── data/
│ │ ├── TRConfig.conf
│ │ ├── auth-ldap-bad-section.conf
│ │ ├── auth-ldap-mismatched.conf
│ │ ├── auth-ldap-missing-newline.conf
│ │ ├── auth-ldap-multikey.conf
│ │ ├── auth-ldap-named.conf
│ │ ├── auth-ldap-pf.conf
│ │ ├── auth-ldap-required.conf
│ │ ├── auth-ldap.conf
│ │ └── test-lineNumbers.conf
│ ├── mockpf.c
│ ├── mockpf.h
│ ├── tests.h
│ └── tests.m
├── tools/
│ ├── Makefile.in
│ ├── README
│ ├── lemon.c
│ ├── lempar.c
│ └── makeheaders.c
├── ubuntu_16.04_lts_build.sh
└── ubuntu_16.04_lts_package.sh
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
Makefile
Mk/autoconf.mk
Mk/compile.mk
Mk/subdir.mk
autom4te.cache/
config.h
config.h.in
config.log
config.status
configure
docs/Makefile
docs/doxyfile
src/Makefile
tests/Makefile
tools/Makefile
AuthLDAP.xcodeproj/project.xcworkspace/xcuserdata/
AuthLDAP.xcodeproj/xcuserdata/
================================================
FILE: AuthLDAP.xcodeproj/project.pbxproj
================================================
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
055C589F15029D4000B34430 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 055C589E15029D4000B34430 /* Foundation.framework */; };
05733B7A15DB7372009E53FA /* asprintf.c in Sources */ = {isa = PBXBuildFile; fileRef = 05733B7915DB7372009E53FA /* asprintf.c */; };
05733B7B15DB7372009E53FA /* asprintf.c in Sources */ = {isa = PBXBuildFile; fileRef = 05733B7915DB7372009E53FA /* asprintf.c */; };
05B374F41502FADC005E3D62 /* auth-ldap.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374BF1502FADC005E3D62 /* auth-ldap.m */; };
05B374F51502FADC005E3D62 /* hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 05B374C01502FADC005E3D62 /* hash.c */; };
05B374F61502FADC005E3D62 /* hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374C11502FADC005E3D62 /* hash.h */; };
05B374F71502FADC005E3D62 /* PXObjCRuntime.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374C31502FADC005E3D62 /* PXObjCRuntime.h */; };
05B374F81502FADC005E3D62 /* strlcpy.c in Sources */ = {isa = PBXBuildFile; fileRef = 05B374C41502FADC005E3D62 /* strlcpy.c */; };
05B374F91502FADC005E3D62 /* strlcpy.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374C51502FADC005E3D62 /* strlcpy.h */; };
05B374FA1502FADC005E3D62 /* testplugin.c in Sources */ = {isa = PBXBuildFile; fileRef = 05B374C61502FADC005E3D62 /* testplugin.c */; };
05B374FB1502FADC005E3D62 /* TRAccountRepository.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374C71502FADC005E3D62 /* TRAccountRepository.h */; };
05B374FC1502FADC005E3D62 /* TRArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374C81502FADC005E3D62 /* TRArray.h */; };
05B374FD1502FADC005E3D62 /* TRArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374C91502FADC005E3D62 /* TRArray.m */; };
05B374FE1502FADC005E3D62 /* TRAuthLDAPConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374CA1502FADC005E3D62 /* TRAuthLDAPConfig.h */; };
05B374FF1502FADC005E3D62 /* TRAuthLDAPConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374CB1502FADC005E3D62 /* TRAuthLDAPConfig.m */; };
05B375001502FADC005E3D62 /* TRAutoreleasePool.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374CC1502FADC005E3D62 /* TRAutoreleasePool.h */; };
05B375011502FADC005E3D62 /* TRAutoreleasePool.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374CD1502FADC005E3D62 /* TRAutoreleasePool.m */; };
05B375021502FADC005E3D62 /* TRConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374CE1502FADC005E3D62 /* TRConfig.h */; };
05B375031502FADC005E3D62 /* TRConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374CF1502FADC005E3D62 /* TRConfig.m */; };
05B375041502FADC005E3D62 /* TRConfigLexer.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374D01502FADC005E3D62 /* TRConfigLexer.h */; };
05B375051502FADC005E3D62 /* TRConfigToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374D31502FADC005E3D62 /* TRConfigToken.h */; };
05B375061502FADC005E3D62 /* TRConfigToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374D41502FADC005E3D62 /* TRConfigToken.m */; };
05B375071502FADC005E3D62 /* TREnumerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374D51502FADC005E3D62 /* TREnumerator.h */; };
05B375081502FADC005E3D62 /* TREnumerator.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374D61502FADC005E3D62 /* TREnumerator.m */; };
05B375091502FADC005E3D62 /* TRHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374D71502FADC005E3D62 /* TRHash.h */; };
05B3750A1502FADC005E3D62 /* TRHash.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374D81502FADC005E3D62 /* TRHash.m */; };
05B3750B1502FADC005E3D62 /* TRLDAPAccountRepository.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374D91502FADC005E3D62 /* TRLDAPAccountRepository.h */; };
05B3750C1502FADC005E3D62 /* TRLDAPAccountRepository.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374DA1502FADC005E3D62 /* TRLDAPAccountRepository.m */; };
05B3750D1502FADC005E3D62 /* TRLDAPConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374DB1502FADC005E3D62 /* TRLDAPConnection.h */; };
05B3750E1502FADC005E3D62 /* TRLDAPConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374DC1502FADC005E3D62 /* TRLDAPConnection.m */; };
05B3750F1502FADC005E3D62 /* TRLDAPEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374DD1502FADC005E3D62 /* TRLDAPEntry.h */; };
05B375101502FADC005E3D62 /* TRLDAPEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374DE1502FADC005E3D62 /* TRLDAPEntry.m */; };
05B375111502FADC005E3D62 /* TRLDAPGroupConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374DF1502FADC005E3D62 /* TRLDAPGroupConfig.h */; };
05B375121502FADC005E3D62 /* TRLDAPGroupConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374E01502FADC005E3D62 /* TRLDAPGroupConfig.m */; };
05B375131502FADC005E3D62 /* TRLDAPSearchFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374E11502FADC005E3D62 /* TRLDAPSearchFilter.h */; };
05B375141502FADC005E3D62 /* TRLDAPSearchFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374E21502FADC005E3D62 /* TRLDAPSearchFilter.m */; };
05B375151502FADC005E3D62 /* TRLocalPacketFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374E31502FADC005E3D62 /* TRLocalPacketFilter.h */; };
05B375161502FADC005E3D62 /* TRLocalPacketFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374E41502FADC005E3D62 /* TRLocalPacketFilter.m */; };
05B375171502FADC005E3D62 /* TRLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374E51502FADC005E3D62 /* TRLog.h */; };
05B375181502FADC005E3D62 /* TRLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374E61502FADC005E3D62 /* TRLog.m */; };
05B375191502FADC005E3D62 /* TRObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374E71502FADC005E3D62 /* TRObject.h */; };
05B3751A1502FADC005E3D62 /* TRObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374E81502FADC005E3D62 /* TRObject.m */; };
05B3751B1502FADC005E3D62 /* TRPacketFilter.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374E91502FADC005E3D62 /* TRPacketFilter.h */; };
05B3751C1502FADC005E3D62 /* TRPacketFilter.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374EA1502FADC005E3D62 /* TRPacketFilter.m */; };
05B3751D1502FADC005E3D62 /* TRPFAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374EB1502FADC005E3D62 /* TRPFAddress.h */; };
05B3751E1502FADC005E3D62 /* TRPFAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374EC1502FADC005E3D62 /* TRPFAddress.m */; };
05B3751F1502FADC005E3D62 /* TRString.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374ED1502FADC005E3D62 /* TRString.h */; };
05B375201502FADC005E3D62 /* TRString.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374EE1502FADC005E3D62 /* TRString.m */; };
05B375211502FADC005E3D62 /* TRVPNPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374EF1502FADC005E3D62 /* TRVPNPlugin.h */; };
05B375221502FADC005E3D62 /* TRVPNSession.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374F01502FADC005E3D62 /* TRVPNSession.h */; };
05B375231502FADC005E3D62 /* TRVPNSession.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B374F11502FADC005E3D62 /* TRVPNSession.m */; };
05B375241502FADC005E3D62 /* xmalloc.c in Sources */ = {isa = PBXBuildFile; fileRef = 05B374F21502FADC005E3D62 /* xmalloc.c */; };
05B375251502FADC005E3D62 /* xmalloc.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B374F31502FADC005E3D62 /* xmalloc.h */; };
05B375301502FBE9005E3D62 /* openvpn-plugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 05B3752F1502FBE9005E3D62 /* openvpn-plugin.h */; };
05B375481502FC88005E3D62 /* lemon.c in Sources */ = {isa = PBXBuildFile; fileRef = 05B375411502FC3F005E3D62 /* lemon.c */; };
05B3755715031709005E3D62 /* makeheaders.c in Sources */ = {isa = PBXBuildFile; fileRef = 05B375441502FC3F005E3D62 /* makeheaders.c */; };
05B3758115031864005E3D62 /* TRConfigParser.lemon in Sources */ = {isa = PBXBuildFile; fileRef = 05B374D21502FADC005E3D62 /* TRConfigParser.lemon */; };
05B375B615031DE5005E3D62 /* mockpf.c in Sources */ = {isa = PBXBuildFile; fileRef = 05B3759515031DE5005E3D62 /* mockpf.c */; };
05B375B715031DE5005E3D62 /* PXTestAssert.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B3759815031DE5005E3D62 /* PXTestAssert.m */; };
05B375B815031DE5005E3D62 /* PXTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B3759A15031DE5005E3D62 /* PXTestCase.m */; };
05B375B915031DE5005E3D62 /* PXTestCaseRunner.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B3759C15031DE5005E3D62 /* PXTestCaseRunner.m */; };
05B375BA15031DE5005E3D62 /* PXTestConsoleResultHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B3759E15031DE5005E3D62 /* PXTestConsoleResultHandler.m */; };
05B375BB15031DE5005E3D62 /* PXTestException.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375A015031DE5005E3D62 /* PXTestException.m */; };
05B375BC15031DE5005E3D62 /* tests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375A415031DE5005E3D62 /* tests.m */; };
05B375BD15031DE5005E3D62 /* TRArrayTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375A515031DE5005E3D62 /* TRArrayTests.m */; };
05B375BE15031DE5005E3D62 /* TRAuthLDAPConfigTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375A615031DE5005E3D62 /* TRAuthLDAPConfigTests.m */; };
05B375BF15031DE5005E3D62 /* TRAutoreleasePoolTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375A715031DE5005E3D62 /* TRAutoreleasePoolTests.m */; };
05B375C015031DE5005E3D62 /* TRConfigLexerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375A815031DE5005E3D62 /* TRConfigLexerTests.m */; };
05B375C115031DE5005E3D62 /* TRConfigTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375A915031DE5005E3D62 /* TRConfigTests.m */; };
05B375C215031DE5005E3D62 /* TRConfigTokenTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375AA15031DE5005E3D62 /* TRConfigTokenTests.m */; };
05B375C315031DE5005E3D62 /* TRHashTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375AB15031DE5005E3D62 /* TRHashTests.m */; };
05B375C415031DE5005E3D62 /* TRLDAPAccountRepositoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375AC15031DE5005E3D62 /* TRLDAPAccountRepositoryTests.m */; };
05B375C515031DE5005E3D62 /* TRLDAPConnectionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375AD15031DE5005E3D62 /* TRLDAPConnectionTests.m */; };
05B375C615031DE5005E3D62 /* TRLDAPEntryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375AE15031DE5005E3D62 /* TRLDAPEntryTests.m */; };
05B375C715031DE5005E3D62 /* TRLDAPGroupConfigTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375AF15031DE5005E3D62 /* TRLDAPGroupConfigTests.m */; };
05B375C815031DE5005E3D62 /* TRLDAPSearchFilterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375B015031DE5005E3D62 /* TRLDAPSearchFilterTests.m */; };
05B375C915031DE5005E3D62 /* TRLocalPacketFilterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375B115031DE5005E3D62 /* TRLocalPacketFilterTests.m */; };
05B375CA15031DE5005E3D62 /* TRObjectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375B215031DE5005E3D62 /* TRObjectTests.m */; };
05B375CB15031DE5005E3D62 /* TRPFAddressTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375B315031DE5005E3D62 /* TRPFAddressTests.m */; };
05B375CC15031DE5005E3D62 /* TRStringTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375B415031DE5005E3D62 /* TRStringTests.m */; };
05B375CD15031DE5005E3D62 /* TRVPNSessionTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 05B375B515031DE5005E3D62 /* TRVPNSessionTests.m */; };
05B375D515032AE5005E3D62 /* libauthldap.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 055C58B515029D9F00B34430 /* libauthldap.a */; };
05B375D715032AFC005E3D62 /* libldap.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 05B375D615032AFC005E3D62 /* libldap.dylib */; };
05B375D815032B20005E3D62 /* TRConfigLexer.re in Sources */ = {isa = PBXBuildFile; fileRef = 05B374D11502FADC005E3D62 /* TRConfigLexer.re */; };
/* End PBXBuildFile section */
/* Begin PBXBuildRule section */
05B3755C1503173C005E3D62 /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.proxy.script;
filePatterns = "*.lemon";
fileType = pattern.proxy;
isEditable = 1;
outputFiles = (
"${SHARED_DERIVED_FILE_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.m",
"${SHARED_DERIVED_FILE_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.h",
);
script = "\"${BUILT_PRODUCTS_DIR}/lemon\" -T${SRCROOT}/tools/lempar.c -m -q \"${INPUT_FILE_PATH}\" \"-O${SHARED_DERIVED_FILE_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.m\"\n\n\"${BUILT_PRODUCTS_DIR}/makeheaders\" \"${SHARED_DERIVED_FILE_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.m\"\n\n\n\n";
};
05B375D915032B24005E3D62 /* PBXBuildRule */ = {
isa = PBXBuildRule;
compilerSpec = com.apple.compilers.proxy.script;
filePatterns = "*.re";
fileType = pattern.proxy;
isEditable = 1;
outputFiles = (
"${SHARED_DERIVED_FILE_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.m",
);
script = "# Add additional search locations for re2c\nexport PATH=\"${PATH}:/opt/local/bin:/usr/local/bin\"\n\nre2c -o \"${SHARED_DERIVED_FILE_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.m\" \"${INPUT_FILE_PATH}\"";
};
/* End PBXBuildRule section */
/* Begin PBXContainerItemProxy section */
05B3755815031716005E3D62 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 055C589115029D4000B34430 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 05B375351502FC2F005E3D62;
remoteInfo = lemon;
};
05B3755A15031717005E3D62 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 055C589115029D4000B34430 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 05B3754C150316FD005E3D62;
remoteInfo = makeheaders;
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
055C589815029D4000B34430 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = /usr/share/man/man1/;
dstSubfolderSpec = 0;
files = (
);
runOnlyForDeploymentPostprocessing = 1;
};
05B375341502FC2F005E3D62 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = /usr/share/man/man1/;
dstSubfolderSpec = 0;
files = (
);
runOnlyForDeploymentPostprocessing = 1;
};
05B3754B150316FD005E3D62 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = /usr/share/man/man1/;
dstSubfolderSpec = 0;
files = (
);
runOnlyForDeploymentPostprocessing = 1;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
055C589A15029D4000B34430 /* tests */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = tests; sourceTree = BUILT_PRODUCTS_DIR; };
055C589E15029D4000B34430 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
055C58B515029D9F00B34430 /* libauthldap.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libauthldap.a; sourceTree = BUILT_PRODUCTS_DIR; };
05733B7915DB7372009E53FA /* asprintf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = asprintf.c; sourceTree = "<group>"; };
05B374BF1502FADC005E3D62 /* auth-ldap.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "auth-ldap.m"; sourceTree = "<group>"; };
05B374C01502FADC005E3D62 /* hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hash.c; sourceTree = "<group>"; };
05B374C11502FADC005E3D62 /* hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hash.h; sourceTree = "<group>"; };
05B374C21502FADC005E3D62 /* Makefile.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Makefile.in; sourceTree = "<group>"; };
05B374C31502FADC005E3D62 /* PXObjCRuntime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PXObjCRuntime.h; sourceTree = "<group>"; };
05B374C41502FADC005E3D62 /* strlcpy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = strlcpy.c; sourceTree = "<group>"; };
05B374C51502FADC005E3D62 /* strlcpy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strlcpy.h; sourceTree = "<group>"; };
05B374C61502FADC005E3D62 /* testplugin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testplugin.c; sourceTree = "<group>"; };
05B374C71502FADC005E3D62 /* TRAccountRepository.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRAccountRepository.h; sourceTree = "<group>"; };
05B374C81502FADC005E3D62 /* TRArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRArray.h; sourceTree = "<group>"; };
05B374C91502FADC005E3D62 /* TRArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRArray.m; sourceTree = "<group>"; };
05B374CA1502FADC005E3D62 /* TRAuthLDAPConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRAuthLDAPConfig.h; sourceTree = "<group>"; };
05B374CB1502FADC005E3D62 /* TRAuthLDAPConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRAuthLDAPConfig.m; sourceTree = "<group>"; };
05B374CC1502FADC005E3D62 /* TRAutoreleasePool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRAutoreleasePool.h; sourceTree = "<group>"; };
05B374CD1502FADC005E3D62 /* TRAutoreleasePool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRAutoreleasePool.m; sourceTree = "<group>"; };
05B374CE1502FADC005E3D62 /* TRConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRConfig.h; sourceTree = "<group>"; };
05B374CF1502FADC005E3D62 /* TRConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRConfig.m; sourceTree = "<group>"; };
05B374D01502FADC005E3D62 /* TRConfigLexer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRConfigLexer.h; sourceTree = "<group>"; };
05B374D11502FADC005E3D62 /* TRConfigLexer.re */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TRConfigLexer.re; sourceTree = "<group>"; };
05B374D21502FADC005E3D62 /* TRConfigParser.lemon */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TRConfigParser.lemon; sourceTree = "<group>"; };
05B374D31502FADC005E3D62 /* TRConfigToken.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRConfigToken.h; sourceTree = "<group>"; };
05B374D41502FADC005E3D62 /* TRConfigToken.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRConfigToken.m; sourceTree = "<group>"; };
05B374D51502FADC005E3D62 /* TREnumerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TREnumerator.h; sourceTree = "<group>"; };
05B374D61502FADC005E3D62 /* TREnumerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TREnumerator.m; sourceTree = "<group>"; };
05B374D71502FADC005E3D62 /* TRHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRHash.h; sourceTree = "<group>"; };
05B374D81502FADC005E3D62 /* TRHash.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRHash.m; sourceTree = "<group>"; };
05B374D91502FADC005E3D62 /* TRLDAPAccountRepository.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRLDAPAccountRepository.h; sourceTree = "<group>"; };
05B374DA1502FADC005E3D62 /* TRLDAPAccountRepository.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLDAPAccountRepository.m; sourceTree = "<group>"; };
05B374DB1502FADC005E3D62 /* TRLDAPConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRLDAPConnection.h; sourceTree = "<group>"; };
05B374DC1502FADC005E3D62 /* TRLDAPConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLDAPConnection.m; sourceTree = "<group>"; };
05B374DD1502FADC005E3D62 /* TRLDAPEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRLDAPEntry.h; sourceTree = "<group>"; };
05B374DE1502FADC005E3D62 /* TRLDAPEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLDAPEntry.m; sourceTree = "<group>"; };
05B374DF1502FADC005E3D62 /* TRLDAPGroupConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRLDAPGroupConfig.h; sourceTree = "<group>"; };
05B374E01502FADC005E3D62 /* TRLDAPGroupConfig.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLDAPGroupConfig.m; sourceTree = "<group>"; };
05B374E11502FADC005E3D62 /* TRLDAPSearchFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRLDAPSearchFilter.h; sourceTree = "<group>"; };
05B374E21502FADC005E3D62 /* TRLDAPSearchFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLDAPSearchFilter.m; sourceTree = "<group>"; };
05B374E31502FADC005E3D62 /* TRLocalPacketFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRLocalPacketFilter.h; sourceTree = "<group>"; };
05B374E41502FADC005E3D62 /* TRLocalPacketFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLocalPacketFilter.m; sourceTree = "<group>"; };
05B374E51502FADC005E3D62 /* TRLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRLog.h; sourceTree = "<group>"; };
05B374E61502FADC005E3D62 /* TRLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLog.m; sourceTree = "<group>"; };
05B374E71502FADC005E3D62 /* TRObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRObject.h; sourceTree = "<group>"; };
05B374E81502FADC005E3D62 /* TRObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRObject.m; sourceTree = "<group>"; };
05B374E91502FADC005E3D62 /* TRPacketFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRPacketFilter.h; sourceTree = "<group>"; };
05B374EA1502FADC005E3D62 /* TRPacketFilter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRPacketFilter.m; sourceTree = "<group>"; };
05B374EB1502FADC005E3D62 /* TRPFAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRPFAddress.h; sourceTree = "<group>"; };
05B374EC1502FADC005E3D62 /* TRPFAddress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRPFAddress.m; sourceTree = "<group>"; };
05B374ED1502FADC005E3D62 /* TRString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRString.h; sourceTree = "<group>"; };
05B374EE1502FADC005E3D62 /* TRString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRString.m; sourceTree = "<group>"; };
05B374EF1502FADC005E3D62 /* TRVPNPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRVPNPlugin.h; sourceTree = "<group>"; };
05B374F01502FADC005E3D62 /* TRVPNSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRVPNSession.h; sourceTree = "<group>"; };
05B374F11502FADC005E3D62 /* TRVPNSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRVPNSession.m; sourceTree = "<group>"; };
05B374F21502FADC005E3D62 /* xmalloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xmalloc.c; sourceTree = "<group>"; };
05B374F31502FADC005E3D62 /* xmalloc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xmalloc.h; sourceTree = "<group>"; };
05B3752F1502FBE9005E3D62 /* openvpn-plugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "openvpn-plugin.h"; sourceTree = "<group>"; };
05B375361502FC2F005E3D62 /* lemon */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = lemon; sourceTree = BUILT_PRODUCTS_DIR; };
05B375411502FC3F005E3D62 /* lemon.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lemon.c; sourceTree = "<group>"; };
05B375421502FC3F005E3D62 /* lempar.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lempar.c; sourceTree = "<group>"; };
05B375431502FC3F005E3D62 /* Makefile.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Makefile.in; sourceTree = "<group>"; };
05B375441502FC3F005E3D62 /* makeheaders.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = makeheaders.c; sourceTree = "<group>"; };
05B375451502FC3F005E3D62 /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; };
05B3754D150316FD005E3D62 /* makeheaders */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = makeheaders; sourceTree = BUILT_PRODUCTS_DIR; };
05B3758A15031DE5005E3D62 /* auth-ldap-bad-section.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "auth-ldap-bad-section.conf"; sourceTree = "<group>"; };
05B3758B15031DE5005E3D62 /* auth-ldap-mismatched.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "auth-ldap-mismatched.conf"; sourceTree = "<group>"; };
05B3758C15031DE5005E3D62 /* auth-ldap-missing-newline.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "auth-ldap-missing-newline.conf"; sourceTree = "<group>"; };
05B3758D15031DE5005E3D62 /* auth-ldap-multikey.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "auth-ldap-multikey.conf"; sourceTree = "<group>"; };
05B3758E15031DE5005E3D62 /* auth-ldap-named.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "auth-ldap-named.conf"; sourceTree = "<group>"; };
05B3758F15031DE5005E3D62 /* auth-ldap-pf.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "auth-ldap-pf.conf"; sourceTree = "<group>"; };
05B3759015031DE5005E3D62 /* auth-ldap-required.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "auth-ldap-required.conf"; sourceTree = "<group>"; };
05B3759115031DE5005E3D62 /* auth-ldap.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "auth-ldap.conf"; sourceTree = "<group>"; };
05B3759215031DE5005E3D62 /* test-lineNumbers.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "test-lineNumbers.conf"; sourceTree = "<group>"; };
05B3759315031DE5005E3D62 /* TRConfig.conf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TRConfig.conf; sourceTree = "<group>"; };
05B3759415031DE5005E3D62 /* Makefile.in */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Makefile.in; sourceTree = "<group>"; };
05B3759515031DE5005E3D62 /* mockpf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mockpf.c; sourceTree = "<group>"; };
05B3759615031DE5005E3D62 /* mockpf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mockpf.h; sourceTree = "<group>"; };
05B3759715031DE5005E3D62 /* PXTestAssert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PXTestAssert.h; sourceTree = "<group>"; };
05B3759815031DE5005E3D62 /* PXTestAssert.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PXTestAssert.m; sourceTree = "<group>"; };
05B3759915031DE5005E3D62 /* PXTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PXTestCase.h; sourceTree = "<group>"; };
05B3759A15031DE5005E3D62 /* PXTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PXTestCase.m; sourceTree = "<group>"; };
05B3759B15031DE5005E3D62 /* PXTestCaseRunner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PXTestCaseRunner.h; sourceTree = "<group>"; };
05B3759C15031DE5005E3D62 /* PXTestCaseRunner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PXTestCaseRunner.m; sourceTree = "<group>"; };
05B3759D15031DE5005E3D62 /* PXTestConsoleResultHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PXTestConsoleResultHandler.h; sourceTree = "<group>"; };
05B3759E15031DE5005E3D62 /* PXTestConsoleResultHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PXTestConsoleResultHandler.m; sourceTree = "<group>"; };
05B3759F15031DE5005E3D62 /* PXTestException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PXTestException.h; sourceTree = "<group>"; };
05B375A015031DE5005E3D62 /* PXTestException.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PXTestException.m; sourceTree = "<group>"; };
05B375A115031DE5005E3D62 /* PXTestObjC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PXTestObjC.h; sourceTree = "<group>"; };
05B375A215031DE5005E3D62 /* PXTestResultHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PXTestResultHandler.h; sourceTree = "<group>"; };
05B375A315031DE5005E3D62 /* tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tests.h; sourceTree = "<group>"; };
05B375A415031DE5005E3D62 /* tests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = tests.m; sourceTree = "<group>"; };
05B375A515031DE5005E3D62 /* TRArrayTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRArrayTests.m; sourceTree = "<group>"; };
05B375A615031DE5005E3D62 /* TRAuthLDAPConfigTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRAuthLDAPConfigTests.m; sourceTree = "<group>"; };
05B375A715031DE5005E3D62 /* TRAutoreleasePoolTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRAutoreleasePoolTests.m; sourceTree = "<group>"; };
05B375A815031DE5005E3D62 /* TRConfigLexerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRConfigLexerTests.m; sourceTree = "<group>"; };
05B375A915031DE5005E3D62 /* TRConfigTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRConfigTests.m; sourceTree = "<group>"; };
05B375AA15031DE5005E3D62 /* TRConfigTokenTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRConfigTokenTests.m; sourceTree = "<group>"; };
05B375AB15031DE5005E3D62 /* TRHashTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRHashTests.m; sourceTree = "<group>"; };
05B375AC15031DE5005E3D62 /* TRLDAPAccountRepositoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLDAPAccountRepositoryTests.m; sourceTree = "<group>"; };
05B375AD15031DE5005E3D62 /* TRLDAPConnectionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLDAPConnectionTests.m; sourceTree = "<group>"; };
05B375AE15031DE5005E3D62 /* TRLDAPEntryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLDAPEntryTests.m; sourceTree = "<group>"; };
05B375AF15031DE5005E3D62 /* TRLDAPGroupConfigTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLDAPGroupConfigTests.m; sourceTree = "<group>"; };
05B375B015031DE5005E3D62 /* TRLDAPSearchFilterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLDAPSearchFilterTests.m; sourceTree = "<group>"; };
05B375B115031DE5005E3D62 /* TRLocalPacketFilterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRLocalPacketFilterTests.m; sourceTree = "<group>"; };
05B375B215031DE5005E3D62 /* TRObjectTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRObjectTests.m; sourceTree = "<group>"; };
05B375B315031DE5005E3D62 /* TRPFAddressTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRPFAddressTests.m; sourceTree = "<group>"; };
05B375B415031DE5005E3D62 /* TRStringTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRStringTests.m; sourceTree = "<group>"; };
05B375B515031DE5005E3D62 /* TRVPNSessionTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRVPNSessionTests.m; sourceTree = "<group>"; };
05B375D615032AFC005E3D62 /* libldap.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libldap.dylib; path = usr/lib/libldap.dylib; sourceTree = SDKROOT; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
055C589715029D4000B34430 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
05B375D715032AFC005E3D62 /* libldap.dylib in Frameworks */,
055C589F15029D4000B34430 /* Foundation.framework in Frameworks */,
05B375D515032AE5005E3D62 /* libauthldap.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
055C58B215029D9F00B34430 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
05B375331502FC2F005E3D62 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
05B3754A150316FD005E3D62 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
055C588F15029D4000B34430 = {
isa = PBXGroup;
children = (
05B375401502FC3F005E3D62 /* tools */,
05B374BE1502FADC005E3D62 /* src */,
05B3758815031DE5005E3D62 /* tests */,
055C589D15029D4000B34430 /* Frameworks */,
055C589B15029D4000B34430 /* Products */,
);
sourceTree = "<group>";
};
055C589B15029D4000B34430 /* Products */ = {
isa = PBXGroup;
children = (
055C589A15029D4000B34430 /* tests */,
055C58B515029D9F00B34430 /* libauthldap.a */,
05B375361502FC2F005E3D62 /* lemon */,
05B3754D150316FD005E3D62 /* makeheaders */,
);
name = Products;
sourceTree = "<group>";
};
055C589D15029D4000B34430 /* Frameworks */ = {
isa = PBXGroup;
children = (
05B3752F1502FBE9005E3D62 /* openvpn-plugin.h */,
05B375D615032AFC005E3D62 /* libldap.dylib */,
055C589E15029D4000B34430 /* Foundation.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
05B374BE1502FADC005E3D62 /* src */ = {
isa = PBXGroup;
children = (
05B374C21502FADC005E3D62 /* Makefile.in */,
05B374BF1502FADC005E3D62 /* auth-ldap.m */,
05B374C61502FADC005E3D62 /* testplugin.c */,
05B3752C1502FB3A005E3D62 /* VPN */,
05B375271502FAF2005E3D62 /* Config */,
05B375281502FB0D005E3D62 /* Foundation */,
05B375291502FB18005E3D62 /* LDAP */,
05B3752B1502FB31005E3D62 /* PF */,
05B3752A1502FB25005E3D62 /* Logging */,
);
path = src;
sourceTree = "<group>";
};
05B375271502FAF2005E3D62 /* Config */ = {
isa = PBXGroup;
children = (
05B374CA1502FADC005E3D62 /* TRAuthLDAPConfig.h */,
05B374CB1502FADC005E3D62 /* TRAuthLDAPConfig.m */,
05B374CE1502FADC005E3D62 /* TRConfig.h */,
05B374CF1502FADC005E3D62 /* TRConfig.m */,
05B374D01502FADC005E3D62 /* TRConfigLexer.h */,
05B374D11502FADC005E3D62 /* TRConfigLexer.re */,
05B374D21502FADC005E3D62 /* TRConfigParser.lemon */,
05B374D31502FADC005E3D62 /* TRConfigToken.h */,
05B374D41502FADC005E3D62 /* TRConfigToken.m */,
05B374DF1502FADC005E3D62 /* TRLDAPGroupConfig.h */,
05B374E01502FADC005E3D62 /* TRLDAPGroupConfig.m */,
);
name = Config;
sourceTree = "<group>";
};
05B375281502FB0D005E3D62 /* Foundation */ = {
isa = PBXGroup;
children = (
05B374C01502FADC005E3D62 /* hash.c */,
05B374C11502FADC005E3D62 /* hash.h */,
05B374C31502FADC005E3D62 /* PXObjCRuntime.h */,
05B374C41502FADC005E3D62 /* strlcpy.c */,
05B374C51502FADC005E3D62 /* strlcpy.h */,
05B374C81502FADC005E3D62 /* TRArray.h */,
05B374C91502FADC005E3D62 /* TRArray.m */,
05B374CC1502FADC005E3D62 /* TRAutoreleasePool.h */,
05B374CD1502FADC005E3D62 /* TRAutoreleasePool.m */,
05B374D51502FADC005E3D62 /* TREnumerator.h */,
05B374D61502FADC005E3D62 /* TREnumerator.m */,
05B374D71502FADC005E3D62 /* TRHash.h */,
05B374D81502FADC005E3D62 /* TRHash.m */,
05B374E71502FADC005E3D62 /* TRObject.h */,
05B374E81502FADC005E3D62 /* TRObject.m */,
05B374ED1502FADC005E3D62 /* TRString.h */,
05B374EE1502FADC005E3D62 /* TRString.m */,
05B374F21502FADC005E3D62 /* xmalloc.c */,
05B374F31502FADC005E3D62 /* xmalloc.h */,
05733B7915DB7372009E53FA /* asprintf.c */,
);
name = Foundation;
sourceTree = "<group>";
};
05B375291502FB18005E3D62 /* LDAP */ = {
isa = PBXGroup;
children = (
05B374D91502FADC005E3D62 /* TRLDAPAccountRepository.h */,
05B374DA1502FADC005E3D62 /* TRLDAPAccountRepository.m */,
05B374DB1502FADC005E3D62 /* TRLDAPConnection.h */,
05B374DC1502FADC005E3D62 /* TRLDAPConnection.m */,
05B374DD1502FADC005E3D62 /* TRLDAPEntry.h */,
05B374DE1502FADC005E3D62 /* TRLDAPEntry.m */,
05B374E11502FADC005E3D62 /* TRLDAPSearchFilter.h */,
05B374E21502FADC005E3D62 /* TRLDAPSearchFilter.m */,
);
name = LDAP;
sourceTree = "<group>";
};
05B3752A1502FB25005E3D62 /* Logging */ = {
isa = PBXGroup;
children = (
05B374E51502FADC005E3D62 /* TRLog.h */,
05B374E61502FADC005E3D62 /* TRLog.m */,
);
name = Logging;
sourceTree = "<group>";
};
05B3752B1502FB31005E3D62 /* PF */ = {
isa = PBXGroup;
children = (
05B374E31502FADC005E3D62 /* TRLocalPacketFilter.h */,
05B374E41502FADC005E3D62 /* TRLocalPacketFilter.m */,
05B374E91502FADC005E3D62 /* TRPacketFilter.h */,
05B374EA1502FADC005E3D62 /* TRPacketFilter.m */,
05B374EB1502FADC005E3D62 /* TRPFAddress.h */,
05B374EC1502FADC005E3D62 /* TRPFAddress.m */,
);
name = PF;
sourceTree = "<group>";
};
05B3752C1502FB3A005E3D62 /* VPN */ = {
isa = PBXGroup;
children = (
05B374C71502FADC005E3D62 /* TRAccountRepository.h */,
05B374EF1502FADC005E3D62 /* TRVPNPlugin.h */,
05B374F01502FADC005E3D62 /* TRVPNSession.h */,
05B374F11502FADC005E3D62 /* TRVPNSession.m */,
);
name = VPN;
sourceTree = "<group>";
};
05B375401502FC3F005E3D62 /* tools */ = {
isa = PBXGroup;
children = (
05B375411502FC3F005E3D62 /* lemon.c */,
05B375421502FC3F005E3D62 /* lempar.c */,
05B375431502FC3F005E3D62 /* Makefile.in */,
05B375441502FC3F005E3D62 /* makeheaders.c */,
05B375451502FC3F005E3D62 /* README */,
);
path = tools;
sourceTree = "<group>";
};
05B3758815031DE5005E3D62 /* tests */ = {
isa = PBXGroup;
children = (
05B3759415031DE5005E3D62 /* Makefile.in */,
05B375A315031DE5005E3D62 /* tests.h */,
05B375A415031DE5005E3D62 /* tests.m */,
05B3758915031DE5005E3D62 /* data */,
05B375D015031E88005E3D62 /* PF */,
05B375CF15031E6E005E3D62 /* Test Runner */,
05B375D115031E95005E3D62 /* Foundation */,
05B375D415031EC4005E3D62 /* Config */,
05B375D315031EBD005E3D62 /* LDAP */,
05B375D215031EAC005E3D62 /* VPN */,
);
path = tests;
sourceTree = "<group>";
};
05B3758915031DE5005E3D62 /* data */ = {
isa = PBXGroup;
children = (
05B3758A15031DE5005E3D62 /* auth-ldap-bad-section.conf */,
05B3758B15031DE5005E3D62 /* auth-ldap-mismatched.conf */,
05B3758C15031DE5005E3D62 /* auth-ldap-missing-newline.conf */,
05B3758D15031DE5005E3D62 /* auth-ldap-multikey.conf */,
05B3758E15031DE5005E3D62 /* auth-ldap-named.conf */,
05B3758F15031DE5005E3D62 /* auth-ldap-pf.conf */,
05B3759015031DE5005E3D62 /* auth-ldap-required.conf */,
05B3759115031DE5005E3D62 /* auth-ldap.conf */,
05B3759215031DE5005E3D62 /* test-lineNumbers.conf */,
05B3759315031DE5005E3D62 /* TRConfig.conf */,
);
path = data;
sourceTree = "<group>";
};
05B375CF15031E6E005E3D62 /* Test Runner */ = {
isa = PBXGroup;
children = (
05B3759715031DE5005E3D62 /* PXTestAssert.h */,
05B3759815031DE5005E3D62 /* PXTestAssert.m */,
05B3759915031DE5005E3D62 /* PXTestCase.h */,
05B3759A15031DE5005E3D62 /* PXTestCase.m */,
05B3759B15031DE5005E3D62 /* PXTestCaseRunner.h */,
05B3759C15031DE5005E3D62 /* PXTestCaseRunner.m */,
05B3759D15031DE5005E3D62 /* PXTestConsoleResultHandler.h */,
05B3759E15031DE5005E3D62 /* PXTestConsoleResultHandler.m */,
05B3759F15031DE5005E3D62 /* PXTestException.h */,
05B375A015031DE5005E3D62 /* PXTestException.m */,
05B375A115031DE5005E3D62 /* PXTestObjC.h */,
05B375A215031DE5005E3D62 /* PXTestResultHandler.h */,
);
name = "Test Runner";
sourceTree = "<group>";
};
05B375D015031E88005E3D62 /* PF */ = {
isa = PBXGroup;
children = (
05B3759515031DE5005E3D62 /* mockpf.c */,
05B3759615031DE5005E3D62 /* mockpf.h */,
05B375B115031DE5005E3D62 /* TRLocalPacketFilterTests.m */,
05B375B315031DE5005E3D62 /* TRPFAddressTests.m */,
);
name = PF;
sourceTree = "<group>";
};
05B375D115031E95005E3D62 /* Foundation */ = {
isa = PBXGroup;
children = (
05B375A515031DE5005E3D62 /* TRArrayTests.m */,
05B375A715031DE5005E3D62 /* TRAutoreleasePoolTests.m */,
05B375AB15031DE5005E3D62 /* TRHashTests.m */,
05B375B215031DE5005E3D62 /* TRObjectTests.m */,
05B375B415031DE5005E3D62 /* TRStringTests.m */,
);
name = Foundation;
sourceTree = "<group>";
};
05B375D215031EAC005E3D62 /* VPN */ = {
isa = PBXGroup;
children = (
05B375B515031DE5005E3D62 /* TRVPNSessionTests.m */,
);
name = VPN;
sourceTree = "<group>";
};
05B375D315031EBD005E3D62 /* LDAP */ = {
isa = PBXGroup;
children = (
05B375AC15031DE5005E3D62 /* TRLDAPAccountRepositoryTests.m */,
05B375AD15031DE5005E3D62 /* TRLDAPConnectionTests.m */,
05B375AE15031DE5005E3D62 /* TRLDAPEntryTests.m */,
05B375B015031DE5005E3D62 /* TRLDAPSearchFilterTests.m */,
);
name = LDAP;
sourceTree = "<group>";
};
05B375D415031EC4005E3D62 /* Config */ = {
isa = PBXGroup;
children = (
05B375A615031DE5005E3D62 /* TRAuthLDAPConfigTests.m */,
05B375A815031DE5005E3D62 /* TRConfigLexerTests.m */,
05B375A915031DE5005E3D62 /* TRConfigTests.m */,
05B375AA15031DE5005E3D62 /* TRConfigTokenTests.m */,
05B375AF15031DE5005E3D62 /* TRLDAPGroupConfigTests.m */,
);
name = Config;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
055C58B315029D9F00B34430 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
05B374F61502FADC005E3D62 /* hash.h in Headers */,
05B374F71502FADC005E3D62 /* PXObjCRuntime.h in Headers */,
05B374F91502FADC005E3D62 /* strlcpy.h in Headers */,
05B374FB1502FADC005E3D62 /* TRAccountRepository.h in Headers */,
05B374FC1502FADC005E3D62 /* TRArray.h in Headers */,
05B374FE1502FADC005E3D62 /* TRAuthLDAPConfig.h in Headers */,
05B375001502FADC005E3D62 /* TRAutoreleasePool.h in Headers */,
05B375021502FADC005E3D62 /* TRConfig.h in Headers */,
05B375041502FADC005E3D62 /* TRConfigLexer.h in Headers */,
05B375051502FADC005E3D62 /* TRConfigToken.h in Headers */,
05B375071502FADC005E3D62 /* TREnumerator.h in Headers */,
05B375091502FADC005E3D62 /* TRHash.h in Headers */,
05B3750B1502FADC005E3D62 /* TRLDAPAccountRepository.h in Headers */,
05B3750D1502FADC005E3D62 /* TRLDAPConnection.h in Headers */,
05B3750F1502FADC005E3D62 /* TRLDAPEntry.h in Headers */,
05B375111502FADC005E3D62 /* TRLDAPGroupConfig.h in Headers */,
05B375131502FADC005E3D62 /* TRLDAPSearchFilter.h in Headers */,
05B375151502FADC005E3D62 /* TRLocalPacketFilter.h in Headers */,
05B375171502FADC005E3D62 /* TRLog.h in Headers */,
05B375191502FADC005E3D62 /* TRObject.h in Headers */,
05B3751B1502FADC005E3D62 /* TRPacketFilter.h in Headers */,
05B3751D1502FADC005E3D62 /* TRPFAddress.h in Headers */,
05B3751F1502FADC005E3D62 /* TRString.h in Headers */,
05B375211502FADC005E3D62 /* TRVPNPlugin.h in Headers */,
05B375221502FADC005E3D62 /* TRVPNSession.h in Headers */,
05B375251502FADC005E3D62 /* xmalloc.h in Headers */,
05B375301502FBE9005E3D62 /* openvpn-plugin.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
055C589915029D4000B34430 /* tests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 055C58A915029D4000B34430 /* Build configuration list for PBXNativeTarget "tests" */;
buildPhases = (
055C589615029D4000B34430 /* Sources */,
055C589715029D4000B34430 /* Frameworks */,
055C589815029D4000B34430 /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = tests;
productName = AuthLDAP;
productReference = 055C589A15029D4000B34430 /* tests */;
productType = "com.apple.product-type.tool";
};
055C58B415029D9F00B34430 /* authldap */ = {
isa = PBXNativeTarget;
buildConfigurationList = 055C58B615029DA000B34430 /* Build configuration list for PBXNativeTarget "authldap" */;
buildPhases = (
055C58B115029D9F00B34430 /* Sources */,
055C58B215029D9F00B34430 /* Frameworks */,
055C58B315029D9F00B34430 /* Headers */,
);
buildRules = (
05B375D915032B24005E3D62 /* PBXBuildRule */,
05B3755C1503173C005E3D62 /* PBXBuildRule */,
);
dependencies = (
05B3755915031716005E3D62 /* PBXTargetDependency */,
05B3755B15031717005E3D62 /* PBXTargetDependency */,
);
name = authldap;
productName = authldap;
productReference = 055C58B515029D9F00B34430 /* libauthldap.a */;
productType = "com.apple.product-type.library.static";
};
05B375351502FC2F005E3D62 /* lemon */ = {
isa = PBXNativeTarget;
buildConfigurationList = 05B3753D1502FC2F005E3D62 /* Build configuration list for PBXNativeTarget "lemon" */;
buildPhases = (
05B375321502FC2F005E3D62 /* Sources */,
05B375331502FC2F005E3D62 /* Frameworks */,
05B375341502FC2F005E3D62 /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = lemon;
productName = lemon;
productReference = 05B375361502FC2F005E3D62 /* lemon */;
productType = "com.apple.product-type.tool";
};
05B3754C150316FD005E3D62 /* makeheaders */ = {
isa = PBXNativeTarget;
buildConfigurationList = 05B37554150316FE005E3D62 /* Build configuration list for PBXNativeTarget "makeheaders" */;
buildPhases = (
05B37549150316FD005E3D62 /* Sources */,
05B3754A150316FD005E3D62 /* Frameworks */,
05B3754B150316FD005E3D62 /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = makeheaders;
productName = makeheaders;
productReference = 05B3754D150316FD005E3D62 /* makeheaders */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
055C589115029D4000B34430 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0430;
ORGANIZATIONNAME = "Plausible Labs Cooperative, Inc.";
};
buildConfigurationList = 055C589415029D4000B34430 /* Build configuration list for PBXProject "AuthLDAP" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 055C588F15029D4000B34430;
productRefGroup = 055C589B15029D4000B34430 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
055C589915029D4000B34430 /* tests */,
055C58B415029D9F00B34430 /* authldap */,
05B375351502FC2F005E3D62 /* lemon */,
05B3754C150316FD005E3D62 /* makeheaders */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
055C589615029D4000B34430 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
05B375B615031DE5005E3D62 /* mockpf.c in Sources */,
05B375B715031DE5005E3D62 /* PXTestAssert.m in Sources */,
05B375B815031DE5005E3D62 /* PXTestCase.m in Sources */,
05B375B915031DE5005E3D62 /* PXTestCaseRunner.m in Sources */,
05B375BA15031DE5005E3D62 /* PXTestConsoleResultHandler.m in Sources */,
05B375BB15031DE5005E3D62 /* PXTestException.m in Sources */,
05B375BC15031DE5005E3D62 /* tests.m in Sources */,
05B375BD15031DE5005E3D62 /* TRArrayTests.m in Sources */,
05B375BE15031DE5005E3D62 /* TRAuthLDAPConfigTests.m in Sources */,
05B375BF15031DE5005E3D62 /* TRAutoreleasePoolTests.m in Sources */,
05B375C015031DE5005E3D62 /* TRConfigLexerTests.m in Sources */,
05B375C115031DE5005E3D62 /* TRConfigTests.m in Sources */,
05B375C215031DE5005E3D62 /* TRConfigTokenTests.m in Sources */,
05B375C315031DE5005E3D62 /* TRHashTests.m in Sources */,
05B375C415031DE5005E3D62 /* TRLDAPAccountRepositoryTests.m in Sources */,
05B375C515031DE5005E3D62 /* TRLDAPConnectionTests.m in Sources */,
05B375C615031DE5005E3D62 /* TRLDAPEntryTests.m in Sources */,
05B375C715031DE5005E3D62 /* TRLDAPGroupConfigTests.m in Sources */,
05B375C815031DE5005E3D62 /* TRLDAPSearchFilterTests.m in Sources */,
05B375C915031DE5005E3D62 /* TRLocalPacketFilterTests.m in Sources */,
05B375CA15031DE5005E3D62 /* TRObjectTests.m in Sources */,
05B375CB15031DE5005E3D62 /* TRPFAddressTests.m in Sources */,
05B375CC15031DE5005E3D62 /* TRStringTests.m in Sources */,
05B375CD15031DE5005E3D62 /* TRVPNSessionTests.m in Sources */,
05733B7A15DB7372009E53FA /* asprintf.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
055C58B115029D9F00B34430 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
05B375D815032B20005E3D62 /* TRConfigLexer.re in Sources */,
05B3758115031864005E3D62 /* TRConfigParser.lemon in Sources */,
05B374F41502FADC005E3D62 /* auth-ldap.m in Sources */,
05B374F51502FADC005E3D62 /* hash.c in Sources */,
05B374F81502FADC005E3D62 /* strlcpy.c in Sources */,
05B374FA1502FADC005E3D62 /* testplugin.c in Sources */,
05B374FD1502FADC005E3D62 /* TRArray.m in Sources */,
05B374FF1502FADC005E3D62 /* TRAuthLDAPConfig.m in Sources */,
05B375011502FADC005E3D62 /* TRAutoreleasePool.m in Sources */,
05B375031502FADC005E3D62 /* TRConfig.m in Sources */,
05B375061502FADC005E3D62 /* TRConfigToken.m in Sources */,
05B375081502FADC005E3D62 /* TREnumerator.m in Sources */,
05B3750A1502FADC005E3D62 /* TRHash.m in Sources */,
05B3750C1502FADC005E3D62 /* TRLDAPAccountRepository.m in Sources */,
05B3750E1502FADC005E3D62 /* TRLDAPConnection.m in Sources */,
05B375101502FADC005E3D62 /* TRLDAPEntry.m in Sources */,
05B375121502FADC005E3D62 /* TRLDAPGroupConfig.m in Sources */,
05B375141502FADC005E3D62 /* TRLDAPSearchFilter.m in Sources */,
05B375161502FADC005E3D62 /* TRLocalPacketFilter.m in Sources */,
05B375181502FADC005E3D62 /* TRLog.m in Sources */,
05B3751A1502FADC005E3D62 /* TRObject.m in Sources */,
05B3751C1502FADC005E3D62 /* TRPacketFilter.m in Sources */,
05B3751E1502FADC005E3D62 /* TRPFAddress.m in Sources */,
05B375201502FADC005E3D62 /* TRString.m in Sources */,
05B375231502FADC005E3D62 /* TRVPNSession.m in Sources */,
05B375241502FADC005E3D62 /* xmalloc.c in Sources */,
05733B7B15DB7372009E53FA /* asprintf.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
05B375321502FC2F005E3D62 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
05B375481502FC88005E3D62 /* lemon.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
05B37549150316FD005E3D62 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
05B3755715031709005E3D62 /* makeheaders.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
05B3755915031716005E3D62 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 05B375351502FC2F005E3D62 /* lemon */;
targetProxy = 05B3755815031716005E3D62 /* PBXContainerItemProxy */;
};
05B3755B15031717005E3D62 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 05B3754C150316FD005E3D62 /* makeheaders */;
targetProxy = 05B3755A15031717005E3D62 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
055C58A715029D4000B34430 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CONFIG_H_MACROS = "TEST_DATA=\"\\\"${SRCROOT}/tests/data\\\"\" APPLE_RUNTIME=1 HAVE_FRAMEWORK_FOUNDATION=1 HAVE_INTTYPES_H=1 HAVE_MEMORY_H=1 HAVE_OBJC_OBJC_H=1 HAVE_PTHREAD=1 HAVE_STDINT_H=1 HAVE_STDLIB_H=1 HAVE_STRINGS_H=1 HAVE_STRING_H=1 HAVE_SYS_STAT_H=1 HAVE_SYS_TYPES_H=1 HAVE_UNISTD_H=1 PACKAGE_BUGREPORT=\"landonf@opendarwin.org\" PACKAGE_NAME=\"auth-ldap\" PACKAGE_STRING=\"auth-ldap\" PACKAGE_TARNAME=\"auth-ldap\" PACKAGE_URL=\"\" PACKAGE_VERSION=\"2.0\" STDC_HEADERS=1 _GNU_SOURCE=1";
COPY_PHASE_STRIP = NO;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(CONFIG_H_MACROS)",
"$(inherited)",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"${SHARED_DERIVED_FILE_DIR}/${CURRENT_ARCH}",
);
MACOSX_DEPLOYMENT_TARGET = 10.7;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
055C58A815029D4000B34430 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CONFIG_H_MACROS = "TEST_DATA=\"\\\"${SRCROOT}/tests/data\\\"\" APPLE_RUNTIME=1 HAVE_FRAMEWORK_FOUNDATION=1 HAVE_INTTYPES_H=1 HAVE_MEMORY_H=1 HAVE_OBJC_OBJC_H=1 HAVE_PTHREAD=1 HAVE_STDINT_H=1 HAVE_STDLIB_H=1 HAVE_STRINGS_H=1 HAVE_STRING_H=1 HAVE_SYS_STAT_H=1 HAVE_SYS_TYPES_H=1 HAVE_UNISTD_H=1 PACKAGE_BUGREPORT=\"landonf@opendarwin.org\" PACKAGE_NAME=\"auth-ldap\" PACKAGE_STRING=\"auth-ldap\" PACKAGE_TARNAME=\"auth-ldap\" PACKAGE_URL=\"\" PACKAGE_VERSION=\"2.0\" STDC_HEADERS=1 _GNU_SOURCE=1";
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
GCC_PREPROCESSOR_DEFINITIONS = "$(CONFIG_H_MACROS)";
GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"${SHARED_DERIVED_FILE_DIR}/${CURRENT_ARCH}",
);
MACOSX_DEPLOYMENT_TARGET = 10.7;
SDKROOT = macosx;
};
name = Release;
};
055C58AA15029D4000B34430 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_PRECOMPILE_PREFIX_HEADER = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
055C58AB15029D4000B34430 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_PRECOMPILE_PREFIX_HEADER = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
055C58B715029DA000B34430 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = lib;
PRODUCT_NAME = "$(TARGET_NAME)";
USER_HEADER_SEARCH_PATHS = "";
};
name = Debug;
};
055C58B815029DA000B34430 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
EXECUTABLE_PREFIX = lib;
PRODUCT_NAME = "$(TARGET_NAME)";
USER_HEADER_SEARCH_PATHS = "";
};
name = Release;
};
05B3753E1502FC2F005E3D62 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
05B3753F1502FC2F005E3D62 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
05B37555150316FE005E3D62 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
05B37556150316FE005E3D62 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
055C589415029D4000B34430 /* Build configuration list for PBXProject "AuthLDAP" */ = {
isa = XCConfigurationList;
buildConfigurations = (
055C58A715029D4000B34430 /* Debug */,
055C58A815029D4000B34430 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
055C58A915029D4000B34430 /* Build configuration list for PBXNativeTarget "tests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
055C58AA15029D4000B34430 /* Debug */,
055C58AB15029D4000B34430 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
055C58B615029DA000B34430 /* Build configuration list for PBXNativeTarget "authldap" */ = {
isa = XCConfigurationList;
buildConfigurations = (
055C58B715029DA000B34430 /* Debug */,
055C58B815029DA000B34430 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
05B3753D1502FC2F005E3D62 /* Build configuration list for PBXNativeTarget "lemon" */ = {
isa = XCConfigurationList;
buildConfigurations = (
05B3753E1502FC2F005E3D62 /* Debug */,
05B3753F1502FC2F005E3D62 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
05B37554150316FE005E3D62 /* Build configuration list for PBXNativeTarget "makeheaders" */ = {
isa = XCConfigurationList;
buildConfigurations = (
05B37555150316FE005E3D62 /* Debug */,
05B37556150316FE005E3D62 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 055C589115029D4000B34430 /* Project object */;
}
================================================
FILE: AuthLDAP.xcodeproj/project.xcworkspace/contents.xcworkspacedata
================================================
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:AuthLDAP.xcodeproj">
</FileRef>
</Workspace>
================================================
FILE: LICENSE
================================================
****************
* INTRODUCTION *
****************
The vast majority of this implementation is subject to the standard
3-clause BSD license. Copyright is held by Three Rings Design and
Landon Fuller, and the license and official copyright can be found at
the bottom of this file.
Small portions of the implementation were taken from various sources, including:
- FreeBSD libc (strlcpy)
- FreeBSD kernel (pf ioctl validation)
- kazlib (hash table implementation)
- PLInstrument (test runner framework)
- SenTestCase (test assertion macros)
Associated copyrights and licenses are documented below. All code included
in the final product are either made available under the BSD license, or
under an compatible and equivalently permissive license.
Some additional sources are included with this distribution and used as a part
of the build process; they are not linked with the final product:
- The lemon parser generator - Public Domain (http://www.hwaci.com/sw/lemon/)
- Makeheaders - GPL (http://www.hwaci.com/sw/mkhdr/)
***************************
* COPYRIGHTS AND LICENSES *
***************************
The src/strlcpy.c and src/strlcpy.h files were taken from FreeBSD libc
and are subject to the following copyright:
Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
All rights reserved.
Please refer to the strlcpy source files for a copy of their (BSD)
license.
The src/hash.c and src/hash.h files were taken from kazlib, and
are subject to the following copyright and license:
Copyright (C) 1997 Kaz Kylheku <kaz@ashi.footprints.net>
Free Software License:
All rights are reserved by the author, with the following exceptions:
Permission is granted to freely reproduce and distribute this software,
possibly in exchange for a fee, provided that this copyright notice appears
intact. Permission is also granted to adapt this software to produce
derivative works, as long as the modified versions carry this copyright
notice and additional notices stating that the work has been modified.
This source code may be translated into executable form and incorporated
into proprietary software; there is no requirement for such software to
contain a copyright notice related to this source.
Small portions of test/mockpf.c and test/mockpf.h were taken from the pf(4)
kernel implementation. These files are used only for the unit tests,
and thus not included in the final output. They are subject to the following
copyright and license:
Copyright (c) 2002 Cedric Berger
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
The Objective-C test framework was derived from Plausible Labs' PLInstrument.
These files are used only for the unit tests, and thus not included in the
final output. They are subject to the following copyright and license:
Copyright (c) 2012 Landon Fuller <landonf@bikemonkey.org>
Copyright (c) 2008-2012 Plausible Labs Cooperative, Inc.
All rights reserved.
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
The test/PXTestAssert.h, test/PXTestAssert.m, PXTestException.h, and
PXTestException.m files provide the assertion macros used in the unit
test system. These files were derived from Google's GTM project, which
in turn is derived from Sen:Te's OCUnit. These files are used only for
the unit tests, and thus not included in the final output.
They are subject to the following copyright and license:
Copyright 2007-2008 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy
of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.
Portions of this file fall under the following license, marked with
SENTE_BEGIN - SENTE_END
Copyright (c) 1997-2005, Sen:te (Sente SA). All rights reserved.
Use of this source code is governed by the following license:
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
(1) Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
(2) Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL Sente SA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Note: this license is equivalent to the FreeBSD license.
All other code is subject to the following copyright and license:
Copyright (c) 2006 - 2007 Three Rings Design, Inc.
Copyright (c) 2005 - 2012 Landon Fuller <landonf@bikemonkey.org>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holders nor the names of any
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: Makefile.in
================================================
top_srcdir= @top_srcdir@
SUBDIR= tools \
src \
tests \
docs
include Mk/subdir.mk
include Mk/autoconf.mk
all::
clean::
distclean::
rm -f config.log config.status configure.lineno config.cache config.h
rm -rf autom4te.cache
rm -f Makefile Mk/autoconf.mk Mk/compile.mk Mk/subdir.mk
================================================
FILE: Mk/autoconf.mk.in
================================================
SHELL = @SHELL@
CC = @CC@
CFLAGS = @CFLAGS@ @DEFS@ -Wall
OBJCFLAGS = -fPIC @OBJCFLAGS@ ${OBJC_RUNTIME_FLAGS} ${OBJC_PTHREAD_CFLAGS} -fno-strict-aliasing ${CFLAGS}
OBJC_LIBS = -fPIC @OBJC_LIBS@ ${OBJC_PTHREAD_LIBS}
OBJC_RUNTIME = @OBJC_RUNTIME@
OBJC_RUNTIME_FLAGS = @OBJC_RUNTIME_FLAGS@
OBJC_PTHREAD_LIBS = @OBJC_PTHREAD_LIBS@
OBJC_PTHREAD_CFLAGS = @OBJC_PTHREAD_CFLAGS@
PLUGIN_LD = @PLUGIN_LD@
PLUGIN_LD_FLAGS = @PLUGIN_LD_FLAGS@
PLUGIN_CFLAGS = @PLUGIN_CFLAGS@
PLUGIN_SUFFIX = @PLUGIN_SUFFIX@
PLUGIN_FILE = @PLUGIN_FILE@
MAKE_PLUGIN = @MAKE_PLUGIN@
INSTALL_PLUGIN = @INSTALL_PLUGIN@
CLEAN_PLUGIN = @CLEAN_PLUGIN@
LDAP_LIBS = @LDAP_LIBS@
LDAP_CFLAGS = @LDAP_CFLAGS@
OPENSSL_LIBS = @OPENSSL_LIBS@
OPENSSL_CFLAGS = @OPENSSL_CFLAGS@
PTHREAD_LIBS = @PTHREAD_LIBS@
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
OPENVPN_CFLAGS = @OPENVPN_CFLAGS@
LDFLAGS = @LDFLAGS@
AR = @AR@
RANLIB = @RANLIB@
INSTALL = @INSTALL@
LN_S = @LN_S@
RE2C = @RE2C@
DOXYGEN = @DOXYGEN@
prefix = @prefix@
sysconfdir = @sysconfdir@
exec_prefix = @exec_prefix@
bindir = @bindir@
datarootdir = @datarootdir@
datadir = @datadir@
libdir = @libdir@
localstatedir = @localstatedir@
infodir = @infodir@
SILENT = @
================================================
FILE: Mk/compile.mk.in
================================================
.SUFFIXES: .m .lemon .re
# Disable GNU make's removal intermediate files, we handle this manually
.SECONDARY:
.m.o:
${CC} ${OBJCFLAGS} -c $< -o $@ -I${srcdir} -I${top_srcdir}/src -I${top_builddir} -I${top_builddir}/src -I. -I${top_srcdir}/tests -I${top_builddir}/tests
.c.o:
${CC} ${CFLAGS} -c $< -o $@ -I${srcdir} -I${top_srcdir}/src -I${top_builddir} -I${top_builddir}/src -I. -I${top_srcdir}/tests -I${top_builddir}/tests
.lemon.m:
${top_builddir}/tools/lemon -T${top_srcdir}/tools/lempar.c -m -q $< -O$@
${top_builddir}/tools/makeheaders $@
.re.m:
${RE2C} -o $@ $<
================================================
FILE: Mk/subdir.mk.in
================================================
.PHONY : all pre-all
.PHONY : clean distclean
.PHONY : install
.PHONY : test
.PHONY : docs
all:: pre-all
@if test x"$(SUBDIR)" != "x"; then \
for subdir in $(SUBDIR); do\
echo ===\> making $@ in ${DIRPRFX}$$subdir; \
( cd $$subdir && $(MAKE) DIRPRFX=${DIRPRFX}$$subdir/ $@) || exit 1; \
done \
fi
pre-all::
clean::
@if test x"$(SUBDIR)" != "x"; then \
for subdir in $(SUBDIR); do\
echo ===\> making $@ in ${DIRPRFX}$$subdir; \
( cd $$subdir && $(MAKE) DIRPRFX=${DIRPRFX}$$subdir/ $@) || exit 1; \
done \
fi
distclean:: clean
@if test x"$(SUBDIR)" != "x"; then \
for subdir in $(SUBDIR); do\
echo ===\> making $@ in ${DIRPRFX}$$subdir; \
( cd $$subdir && $(MAKE) DIRPRFX=${DIRPRFX}$$subdir/ $@) || exit 1; \
done \
fi
install::
@if test x"$(SUBDIR)" != "x"; then \
for subdir in $(SUBDIR); do\
echo ===\> making $@ in ${DIRPRFX}$$subdir; \
( cd $$subdir && $(MAKE) DIRPRFX=${DIRPRFX}$$subdir/ $@) || exit 1; \
done \
fi
test:: all
@if test x"$(SUBDIR)" != "x"; then \
for subdir in $(SUBDIR); do\
echo ===\> making $@ in ${DIRPRFX}$$subdir; \
( cd $$subdir && $(MAKE) DIRPRFX=${DIRPRFX}$$subdir/ $@) || exit 1; \
done \
fi
docs:: all
@if test x"$(SUBDIR)" != "x"; then \
for subdir in $(SUBDIR); do\
echo ===\> making $@ in ${DIRPRFX}$$subdir; \
( cd $$subdir && $(MAKE) DIRPRFX=${DIRPRFX}$$subdir/ $@) || exit 1; \
done \
fi
================================================
FILE: README.md
================================================
## Description
The OpenVPN Auth-LDAP Plugin implements username/password authentication via LDAP for OpenVPN 2.x.
### Features
* User authentication against LDAP.
* Simple Apache-style configuration file.
* LDAP group-based access restrictions.
* Integration with the OpenBSD packet filter, supporting adding and removing VPN clients from PF tables based on group membership.
* Tested against OpenLDAP, the plugin will authenticate against any LDAP server that supports LDAP simple binds -- including Active Directory.
* Supports OpenVPN Challenge/Response protocol, enabling it to be used in combination with one time password systems like Google Authenticator
## Building
### Requirements
* OpenLDAP Headers and Library
* GNU Objective-C Compiler
* OpenVPN Plugin Header (included with the OpenVPN sources)
* [re2c](http://www.re2c.org/) (used for the configuration file lexer)
To build, you will need to configure the sources appropriately. Example:
```
./configure --prefix=/usr/local --with-openldap=/usr/local --with-openvpn=/home/sean/work/openvpn-2.0.2
```
The module will be built in src/openvpn-auth-ldap.so and installed as
`${prefix}/lib/openvpn-auth-ldap.so`.
#### Building On Ubuntu 16.04 ####
The following steps were tested on a clean Ubuntu 16.04 LTS Amazon EC2 m5.large instance in January 2018 (source AMI: ubuntu/images/hvm-ssd/ubuntu-xenial-16.04-amd64-server-20180109 - ami-41e0b93b).
If you wish to repeat this process, follow these steps on your own machine:
```
git clone https://github.com/snowrider311/openvpn-auth-ldap
cd openvpn-auth-ldap/
./ubuntu_16.04_lts_build.sh
```
The `ubuntu_16.04_lts_build.sh` script will install all needed build dependencies, perform the build, and install `openvpn-auth-ldap.so` to `/usr/local/lib`.
If you then wish to create a Debian package, you can then run this script:
```
./ubuntu_16.04_lts_package.sh
```
That script will install [FPM](https://github.com/jordansissel/fpm) and then use it to build a Debian package. If you then run `sudo dpkg -i openvpn-auth-ldap-snowrider311_2.0.3-1_amd64.deb`, then `openvpn-auth-ldap.so` will be installed to `/usr/lib/openvpn`, the same location as the standard, unforked `openvpn-auth-ldap` Debian package installs to.
Note: Superuser privileges are required to run these scripts.
## Usage
Add the following to your OpenVPN configuration file (adjusting the plugin path as required):
```
plugin /usr/local/lib/openvpn-auth-ldap.so "<config>"
```
The config directive must point to an auth-ldap configuration file. An example configuration file
is provided with the distribution, or see the [Configuration](../../wiki/Configuration) page.
## Security
*Please report all security issues directly to landonf+security (at) bikemonkey (dot) org.*
Through the use of extensive unit testing, valgrind, and regression testing, we are very confident
in the overall code quality of the plugin. There has been one security vulnerability to date, due
to misinterpretation of LDAP RFCs.
* 2006-12-02: OpenVPN Auth-LDAP would accept empty passwords when validating against Novell Directory Server. This is known to not affect default installs of OpenLDAP (our test platform). Strict implementation of the LDAP RFCs requires that a directory server treat a bind with a valid DN and an empty password as an "anonymous" bind. If anonymous binds are enabled, this could lead to password bypass.
## Support
Plausible Labs Cooperative is available to provide custom development or support for this plugin.
If you require specific features or additions, please [contact
us](http://www.plausible.coop/about/) for more information.
================================================
FILE: aclocal.m4
================================================
builtin(include,pthread.m4)
builtin(include,platform.m4)
builtin(include,framework.m4)
#------------------------------------------------------------------------
# OD_OBJC_RUNTIME --
#
# Determine the default, working Objective C runtime
#
# Arguments:
# None.
#
# Requires:
# none
#
# Depends:
# AC_PROG_OBJC from objc.m4
#
# Results:
#
# Adds a --with-objc-runtime switch to configure.
# Result is cached.
#
# Defines one of the following preprocessor macros:
# APPLE_RUNTIME GNU_RUNTIME
#
# Substitutes the following variables:
# OBJC_RUNTIME OBJC_RUNTIME_FLAGS OBJC_LIBS
# OBJC_PTHREAD_CFLAGS OBJC_PTHREAD_LIBS
#------------------------------------------------------------------------
AC_DEFUN([OD_OBJC_RUNTIME],[
AC_REQUIRE([AC_PROG_OBJC])
AC_ARG_WITH(objc-runtime, AC_HELP_STRING([--with-objc-runtime], [Specify either "GNU" or "apple"]), [with_objc_runtime=${withval}])
if test x"${with_objc_runtime}" != x; then
case "${with_objc_runtime}" in
GNU)
;;
apple)
;;
*)
AC_MSG_ERROR([${with_objc_runtime} is not a valid argument to --with-objc-runtime. Please specify either "GNU" or "apple"])
;;
esac
fi
AC_LANG_PUSH([Objective C])
# Check for common header, objc/objc.h
AC_CHECK_HEADERS([objc/objc.h], ,[AC_MSG_ERROR([Can't locate Objective C runtime headers])])
# Save LIBS & OBJCFLAGS
# depending on whether the cache is used,
# the variables may or may not be modified.
OLD_LIBS="${LIBS}"
OLD_OBJCFLAGS="${OBJCFLAGS}"
# Add -lobjc and -fobjc-exceptions. The following tests will ensure that the library exists and
# functions with the detected Objective C compiler
OBJCFLAGS="${OBJCFLAGS} -fobjc-exceptions"
LIBS="${LIBS} -lobjc -fobjc-exceptions"
# Test if pthreads are required to link against
# libobjc - this is the case on FreeBSD.
AC_MSG_CHECKING([if linking libobjc requires pthreads])
AC_CACHE_VAL(od_cv_objc_req_pthread, [
# First, test if objc links without pthreads
# The following uses quadrigraphs
# '@<:@' = '['
# '@:>@' = ']'
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <objc/objc.h>
#include <objc/Object.h>
], [
Object *obj = @<:@Object alloc@:>@;
puts(@<:@obj name@:>@);
])
], [
# Linked without -pthread
od_cv_objc_req_pthread="no"
], [
# Failed to link without -pthread
od_cv_objc_req_pthread="yes"
]
)
# If the above failed, try with pthreads
if test x"${od_cv_objc_req_pthread}" = x"yes"; then
LIBS="${LIBS} ${PTHREAD_LIBS}"
OBJCFLAGS="${OBJCFLAGS} ${PTHREAD_CFLAGS}"
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <objc/objc.h>
#include <objc/Object.h>
], [
Object *obj = @<:@Object alloc@:>@;
puts(@<:@obj name@:>@);
])
], [
# Linked with -lpthread
od_cv_objc_req_pthread="yes"
], [
# Failed to link against objc at all
# This will be caught in the runtime
# checks below
od_cv_objc_req_pthread="no"
]
)
fi
])
AC_MSG_RESULT(${od_cv_objc_req_pthread})
if test x"${od_cv_objc_req_pthread}" = x"no"; then
OBJC_LIBS="${OBJC_LIBS} -lobjc"
OBJC_PTHREAD_LIBS="${PTHREAD_LIBS} -fobjc-exceptions"
OBJC_PTHREAD_CFLAGS="${PTHREAD_CFLAGS} -fobjc-exceptions"
elif test x"${od_cv_objc_req_pthread}" = x"yes"; then
OBJC_LIBS="${OBJC_LIBS} -lobjc ${PTHREAD_LIBS} -fobjc-exceptions"
OBJCFLAGS="${OBJCFLAGS} ${PTHREAD_CFLAGS} -fobjc-exceptions"
fi
if test x"${with_objc_runtime}" = x || test x"${with_objc_runtime}" = x"apple"; then
AC_MSG_CHECKING([for Apple Objective-C runtime])
AC_CACHE_VAL(od_cv_objc_runtime_apple, [
# The following uses quadrigraphs
# '@<:@' = '['
# '@:>@' = ']'
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <objc/objc.h>
#include <objc/objc-api.h>
], [
id class = objc_lookUpClass("Object");
id obj = @<:@class alloc@:>@;
puts(@<:@obj name@:>@);
])
], [
od_cv_objc_runtime_apple="yes"
], [
od_cv_objc_runtime_apple="no"
]
)
])
AC_MSG_RESULT(${od_cv_objc_runtime_apple})
else
od_cv_objc_runtime_apple="no"
fi
if test x"${with_objc_runtime}" = x || test x"${with_objc_runtime}" = x"GNU"; then
AC_MSG_CHECKING([for GNU Objective C runtime])
AC_CACHE_VAL(od_cv_objc_runtime_gnu, [
# The following uses quadrigraphs
# '@<:@' = '['
# '@:>@' = ']'
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <objc/objc.h>
#ifdef __GNU_LIBOBJC__
#include <objc/runtime.h>
#else
#include <objc/objc-api.h>
#endif
], [
#ifdef __GNU_LIBOBJC_
Class class = objc_lookUpClass("Object");
puts(class_getName(class));_
#else
id class = objc_lookup_class("Object");
id obj = @<:@class alloc@:>@;
puts(@<:@obj name@:>@);
#endif
])
], [
od_cv_objc_runtime_gnu="yes"
], [
od_cv_objc_runtime_gnu="no"
]
)
])
AC_MSG_RESULT(${od_cv_objc_runtime_gnu})
else
od_cv_objc_runtime_gnu="no"
fi
# Apple runtime is prefered
if test x"${od_cv_objc_runtime_apple}" = x"yes"; then
OBJC_RUNTIME="APPLE_RUNTIME"
AC_MSG_NOTICE([Using Apple Objective-C runtime])
AC_DEFINE([APPLE_RUNTIME], 1, [Define if using the Apple Objective-C runtime and compiler.])
elif test x"${od_cv_objc_runtime_gnu}" = x"yes"; then
OBJC_RUNTIME="GNU_RUNTIME"
AC_MSG_NOTICE([Using GNU Objective-C runtime])
AC_DEFINE([GNU_RUNTIME], 1, [Define if using the GNU Objective-C runtime and compiler.])
else
AC_MSG_FAILURE([Could not locate a working Objective-C runtime.])
fi
# Restore LIBS & OBJCFLAGS
LIBS="${OLD_LIBS}"
OBJCFLAGS="${OLD_OBJCFLAGS}"
AC_SUBST([OBJC_RUNTIME])
AC_SUBST([OBJC_RUNTIME_FLAGS])
AC_SUBST([OBJC_LIBS])
AC_SUBST([OBJC_PTHREAD_LIBS])
AC_SUBST([OBJC_PTHREAD_CFLAGS])
AC_LANG_POP([Objective C])
])
#------------------------------------------------------------------------
# OD_OPENLDAP --
#
# Locate the OpenLDAP libraries and headers
#
# Arguments:
# None.
#
# Requires:
# none
#
# Depends:
# none
#
# Results:
#
# Adds a --with-openldap switch to configure.
# Result is cached.
#
# Substitutes the following variables:
# LDAP_LIBS LDAP_CFLAGS
#------------------------------------------------------------------------
AC_DEFUN([OD_OPENLDAP],[
AC_REQUIRE([AC_PROG_CC])
AC_ARG_WITH(openldap, AC_HELP_STRING([--with-openldap], [Specify the openldap installation location]), [with_openldap=${withval}])
# Save LIBS, CFLAGS
# depending on whether the cache is used,
# the variables may or may not be modified.
OLD_LIBS="${LIBS}"
OLD_CFLAGS="${CFLAGS}"
LDAP_LIBS="-lldap -llber"
LDAP_CFLAGS=""
if test x"${with_openldap}" != x; then
LDAP_LIBS="${LDAP_LIBS} -L${with_openldap}/lib"
LDAP_CFLAGS="${LDAP_CFLAGS} -I${with_openldap}/include"
fi
# Add -lldap. The following tests will ensure that the library exists and functions with the detected C compiler
LIBS="${LIBS} ${LDAP_LIBS}"
CFLAGS="${CFLAGS} ${LDAP_CFLAGS}"
AC_MSG_CHECKING([for openldap])
AC_CACHE_VAL(od_cv_openldap, [
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <ldap.h>
], [
int flag = LDAP_OPT_X_TLS_NEVER;
void *fptr = ldap_result;
])
], [
# Failed
od_cv_openldap="yes"
], [
# Success
od_cv_openldap="no"
]
)
])
AC_MSG_RESULT(${od_cv_openldap})
if test x"${od_cv_openldap}" = x"no"; then
AC_MSG_FAILURE([Could not locate a working OpenLDAP library installation. Try --with-openldap=])
fi
# Restore LIBS & CFLAGS
LIBS="${OLD_LIBS}"
CFLAGS="${OLD_CFLAGS}"
AC_SUBST([LDAP_CFLAGS])
AC_SUBST([LDAP_LIBS])
])
#------------------------------------------------------------------------
# OD_OPENVPN_HEADER --
#
# Locate the OpenVPN plugin header
#
# Arguments:
# None.
#
# Requires:
# none
#
# Depends:
# none
#
# Results:
#
# Adds a --with-openvpn switch to configure.
# Result is cached.
#
# Substitutes the following variables:
# OPENVPN_CFLAGS
#------------------------------------------------------------------------
AC_DEFUN([OD_OPENVPN_HEADER],[
AC_REQUIRE([AC_PROG_CC])
AC_ARG_WITH(openvpn, AC_HELP_STRING([--with-openvpn], [Specify the path to the OpenVPN source]), [with_openvpn=${withval}])
if test x"${with_openvpn}" = "x"; then
AC_MSG_ERROR([You must specify the location of the OpenVPN source code with --with-openvpn])
else
OPENVPN_CFLAGS="-I${with_openvpn}"
fi
# Save CFLAGS
OLD_CFLAGS="${CFLAGS}"
CFLAGS="${CFLAGS} ${OPENVPN_CFLAGS}"
AC_MSG_CHECKING([for openvpn-plugin.h])
AC_CACHE_VAL(od_cv_openvpn, [
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <openvpn-plugin.h>
], [
int flag = OPENVPN_PLUGIN_UP;
])
], [
# Failed
od_cv_openvpn="yes"
], [
# Success
od_cv_openvpn="no"
]
)
])
AC_MSG_RESULT(${od_cv_openvpn})
if test x"${od_cv_openvpn}" = x"no"; then
AC_MSG_FAILURE([Could not locate a working openvpn source tree.])
fi
# Restore LIBS & CFLAGS
LIBS="${OLD_LIBS}"
CFLAGS="${OLD_CFLAGS}"
AC_SUBST([OPENVPN_CFLAGS])
])
#------------------------------------------------------------------------
# TR_PF_IOCTL --
#
# Locate the pf(4) headers
#
# Arguments:
# None.
#
# Requires:
# none
#
# Depends:
# none
#
# Results:
#
# Defines the following preprocessor macros:
# OPENVPN_CFLAGS
#------------------------------------------------------------------------
AC_DEFUN([TR_PF_IOCTL],[
AC_REQUIRE([AC_PROG_CC])
AC_MSG_CHECKING([for BSD pf(4) support])
AC_CACHE_VAL(tr_cv_pf_ioctl, [
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <net/if.h>
#include <net/pfvar.h>
], [
unsigned long req = DIOCRCLRTABLES;
])
], [
# Failed
tr_cv_pf_ioctl="yes"
], [
# Success
tr_cv_pf_ioctl="no"
]
)
])
AC_MSG_RESULT(${tr_cv_pf_ioctl})
if test x"${tr_cv_pf_ioctl}" = x"no"; then
AC_MSG_WARN([pf(4) table support will not be included.])
else
AC_DEFINE([HAVE_PF], [1], [Define to enable pf(4) table support.])
AC_DEFINE([PF_DEV_PATH], ["/dev/pf"], [Path to the pf(4) device.])
fi
])
#------------------------------------------------------------------------
# TR_OPENSSL --
#
# Locate the OpenSSL libraries and headers
#
# Arguments:
# None.
#
# Requires:
# none
#
# Depends:
# none
#
# Results:
#
# Adds a --with-openssl switch to configure.
# Result is cached.
#
# Substitutes the following variables:
# OPENSSL_LIBS OPENSSL_CFLAGS
#------------------------------------------------------------------------
AC_DEFUN([TR_OPENSSL],[
AC_REQUIRE([AC_PROG_CC])
AC_ARG_WITH(openssl, AC_HELP_STRING([--with-openssl], [Specify the openssl installation location]), [with_openssl=${withval}])
# Save LIBS, CFLAGS
# depending on whether the cache is used,
# the variables may or may not be modified.
OLD_LIBS="${LIBS}"
OLD_CFLAGS="${CFLAGS}"
OPENSSL_LIBS="-lssl -lcrypto"
OPENSSL_CFLAGS=""
if test x"${with_openssl}" != x; then
OPENSSL_LIBS="${OPENSSL_LIBS} -L${with_openssl}/lib"
OPENSSL_CFLAGS="${OPENSSL_CFLAGS} -I${with_openssl}/include"
fi
# Add -lssl. The following tests will ensure that the library exists and functions with the detected C compiler
LIBS="${LIBS} ${OPENSSL_LIBS}"
CFLAGS="${CFLAGS} ${OPENSSL_CFLAGS}"
AC_MSG_CHECKING([for openssl])
AC_CACHE_VAL(od_cv_openssl, [
AC_LINK_IFELSE([
AC_LANG_PROGRAM([
#include <openssl/ssl.h>
], [
CRYPTO_set_id_callback(NULL);
])
], [
# Failed
od_cv_openssl="yes"
], [
# Success
od_cv_openssl="no"
]
)
])
AC_MSG_RESULT(${od_cv_openssl})
if test x"${od_cv_openssl}" = x"no"; then
AC_MSG_FAILURE([Could not locate a working OpenSSL library installation. Try --with-openssl=])
fi
# Restore LIBS & CFLAGS
LIBS="${OLD_LIBS}"
CFLAGS="${OLD_CFLAGS}"
AC_SUBST([OPENSSL_CFLAGS])
AC_SUBST([OPENSSL_LIBS])
])
#------------------------------------------------------------------------
# TR_WERROR --
#
# Enable -Werror
#
# Arguments:
# None.
#
# Requires:
# none
#
# Depends:
# none
#
# Results:
# Modifies CFLAGS variable.
#------------------------------------------------------------------------
AC_DEFUN([TR_WERROR],[
AC_REQUIRE([AC_PROG_CC])
AC_ARG_ENABLE(werror, AC_HELP_STRING([--enable-werror], [Add -Werror to CFLAGS. Used for development.]), [enable_werror=${enableval}], [enable_werror=no])
if test x"$enable_werror" != "xno"; then
CFLAGS="$CFLAGS -Werror"
fi
])
================================================
FILE: auth-ldap.conf
================================================
<LDAP>
# LDAP server URL
URL ldap://ldap1.example.org
# Bind DN (If your LDAP server doesn't support anonymous binds)
# BindDN uid=Manager,ou=People,dc=example,dc=com
# Bind Password
# Password SecretPassword
# Network timeout (in seconds)
Timeout 15
# Enable Start TLS
TLSEnable yes
# Follow LDAP Referrals (anonymously)
FollowReferrals yes
# TLS CA Certificate File
TLSCACertFile /usr/local/etc/ssl/ca.pem
# TLS CA Certificate Directory
TLSCACertDir /etc/ssl/certs
# Client Certificate and key
# If TLS client authentication is required
TLSCertFile /usr/local/etc/ssl/client-cert.pem
TLSKeyFile /usr/local/etc/ssl/client-key.pem
# Cipher Suite
# The defaults are usually fine here
# TLSCipherSuite ALL:!ADH:@STRENGTH
</LDAP>
<Authorization>
# Base DN
BaseDN "ou=People,dc=example,dc=com"
# User Search Filter
SearchFilter "(&(uid=%u)(accountStatus=active))"
# Require Group Membership
RequireGroup false
# Add non-group members to a PF table (disabled)
#PFTable ips_vpn_users
# Uncomment and set to true to support OpenVPN Challenge/Response
#PasswordIsCR false
<Group>
# Default is true. Match full user DN if true, uid only if false.
# RFC2307bis true
# Default is true. Uncomment and set to false if you want to use a Search operation to determine group
# membership instead of Compare. Lower performance, so Compare should generally be used, but Search is
# required in certain LDAP environments.
# UseCompareOperation true
BaseDN "ou=Groups,dc=example,dc=com"
SearchFilter "(|(cn=developers)(cn=artists))"
MemberAttribute uniqueMember
# Add group members to a PF table (disabled)
#PFTable ips_vpn_eng
</Group>
</Authorization>
================================================
FILE: config.guess
================================================
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc.
timestamp='2002-07-23'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Originally written by Per Bothner <per@bothner.com>.
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
# This script attempts to guess a canonical system name similar to
# config.sub. If it succeeds, it prints the system name on stdout, and
# exits with 0. Otherwise, it exits with 1.
#
# The plan is that this can be called by configure scripts if you
# don't specify an explicit build system type.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION]
Output the configuration name of the system \`$me' is run on.
Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.guess ($timestamp)
Originally written by Per Bothner.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit 0 ;;
--version | -v )
echo "$version" ; exit 0 ;;
--help | --h* | -h )
echo "$usage"; exit 0 ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help" >&2
exit 1 ;;
* )
break ;;
esac
done
if test $# != 0; then
echo "$me: too many arguments$help" >&2
exit 1
fi
trap 'exit 1' 1 2 15
# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
# compiler to aid in system detection is discouraged as it requires
# temporary files to be created and, as you can see below, it is a
# headache to deal with in a portable fashion.
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
# use `HOST_CC' if defined, but it is deprecated.
# This shell variable is my proudest work .. or something. --bje
set_cc_for_build='tmpdir=${TMPDIR-/tmp}/config-guess-$$ ;
(old=`umask` && umask 077 && mkdir $tmpdir && umask $old && unset old)
|| (echo "$me: cannot create $tmpdir" >&2 && exit 1) ;
dummy=$tmpdir/dummy ;
files="$dummy.c $dummy.o $dummy.rel $dummy" ;
trap '"'"'rm -f $files; rmdir $tmpdir; exit 1'"'"' 1 2 15 ;
case $CC_FOR_BUILD,$HOST_CC,$CC in
,,) echo "int x;" > $dummy.c ;
for c in cc gcc c89 c99 ; do
if ($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1 ; then
CC_FOR_BUILD="$c"; break ;
fi ;
done ;
rm -f $files ;
if test x"$CC_FOR_BUILD" = x ; then
CC_FOR_BUILD=no_compiler_found ;
fi
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
esac ;
unset files'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
PATH=$PATH:/.attbin ; export PATH
fi
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
# Note: order is significant - the case branches are not exclusive.
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
*:NetBSD:*:*)
# NetBSD (nbsd) targets should (where applicable) match one or
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
# switched to ELF, *-*-netbsd* would select the old
# object file format. This provides both forward
# compatibility and a consistent mechanism for selecting the
# object file format.
#
# Note: NetBSD doesn't particularly care about the vendor
# portion of the name. We always set it to "unknown".
sysctl="sysctl -n hw.machine_arch"
UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
/usr/sbin/$sysctl 2>/dev/null || echo unknown)`
case "${UNAME_MACHINE_ARCH}" in
armeb) machine=armeb-unknown ;;
arm*) machine=arm-unknown ;;
sh3el) machine=shl-unknown ;;
sh3eb) machine=sh-unknown ;;
*) machine=${UNAME_MACHINE_ARCH}-unknown ;;
esac
# The Operating System including object format, if it has switched
# to ELF recently, or will in the future.
case "${UNAME_MACHINE_ARCH}" in
arm*|i386|m68k|ns32k|sh3*|sparc|vax)
eval $set_cc_for_build
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
| grep __ELF__ >/dev/null
then
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
# Return netbsd for either. FIX?
os=netbsd
else
os=netbsdelf
fi
;;
*)
os=netbsd
;;
esac
# The OS release
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
exit 0 ;;
amiga:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
hp300:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mac68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
macppc:OpenBSD:*:*)
echo powerpc-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvme68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvme88k:OpenBSD:*:*)
echo m88k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvmeppc:OpenBSD:*:*)
echo powerpc-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
pmax:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sgi:OpenBSD:*:*)
echo mipseb-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sun3:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
wgrisc:OpenBSD:*:*)
echo mipsel-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
*:OpenBSD:*:*)
echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
alpha:OSF1:*:*)
if test $UNAME_RELEASE = "V4.0"; then
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
fi
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
eval $set_cc_for_build
cat <<EOF >$dummy.s
.data
\$Lformat:
.byte 37,100,45,37,120,10,0 # "%d-%x\n"
.text
.globl main
.align 4
.ent main
main:
.frame \$30,16,\$26,0
ldgp \$29,0(\$27)
.prologue 1
.long 0x47e03d80 # implver \$0
lda \$2,-1
.long 0x47e20c21 # amask \$2,\$1
lda \$16,\$Lformat
mov \$0,\$17
not \$1,\$18
jsr \$26,printf
ldgp \$29,0(\$26)
mov 0,\$16
jsr \$26,exit
.end main
EOF
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
if test "$?" = 0 ; then
case `$dummy` in
0-0)
UNAME_MACHINE="alpha"
;;
1-0)
UNAME_MACHINE="alphaev5"
;;
1-1)
UNAME_MACHINE="alphaev56"
;;
1-101)
UNAME_MACHINE="alphapca56"
;;
2-303)
UNAME_MACHINE="alphaev6"
;;
2-307)
UNAME_MACHINE="alphaev67"
;;
2-1307)
UNAME_MACHINE="alphaev68"
;;
3-1307)
UNAME_MACHINE="alphaev7"
;;
esac
fi
rm -f $dummy.s $dummy && rmdir $tmpdir
echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
exit 0 ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
exit 0 ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
exit 0 ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
exit 0;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
exit 0 ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
exit 0 ;;
*:OS/390:*:*)
echo i370-ibm-openedition
exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit 0;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
echo pyramid-pyramid-sysv3
else
echo pyramid-pyramid-bsd
fi
exit 0 ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
exit 0 ;;
DRS?6000:UNIX_SV:4.2*:7*)
case `/usr/bin/uname -p` in
sparc) echo sparc-icl-nx7 && exit 0 ;;
esac ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
i86pc:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
UNAME_RELEASE=`uname -v`
;;
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
exit 0 ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
exit 0 ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
case "`/bin/arch`" in
sun3)
echo m68k-sun-sunos${UNAME_RELEASE}
;;
sun4)
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
exit 0 ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
exit 0 ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
# > m68000). The system name ranges from "MiNT" over "FreeMiNT"
# to the lowercase version "mint" (or "freemint"). Finally
# the system name "TOS" denotes a system which is actually not
# MiNT. But MiNT is downward compatible to TOS, so this should
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit 0 ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit 0 ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
exit 0 ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
exit 0 ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
exit 0 ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
exit 0 ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
exit 0 ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
exit 0 ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
exit 0 ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
exit 0 ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#ifdef __cplusplus
#include <stdio.h> /* for printf() prototype */
int main (int argc, char *argv[]) {
#else
int main (argc, argv) int argc; char *argv[]; {
#endif
#if defined (host_mips) && defined (MIPSEB)
#if defined (SYSTYPE_SYSV)
printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_SVR4)
printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
#endif
#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
#endif
#endif
exit (-1);
}
EOF
$CC_FOR_BUILD $dummy.c -o $dummy \
&& $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
&& rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
rm -f $dummy.c $dummy && rmdir $tmpdir
echo mips-mips-riscos${UNAME_RELEASE}
exit 0 ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
exit 0 ;;
Night_Hawk:*:*:PowerMAX_OS)
echo powerpc-harris-powermax
exit 0 ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
exit 0 ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
exit 0 ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
exit 0 ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
exit 0 ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
then
if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
[ ${TARGET_BINARY_INTERFACE}x = x ]
then
echo m88k-dg-dgux${UNAME_RELEASE}
else
echo m88k-dg-dguxbcs${UNAME_RELEASE}
fi
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
exit 0 ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
exit 0 ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
exit 0 ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
exit 0 ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
exit 0 ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
exit 0 ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
exit 0 ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
exit 0 ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <sys/systemcfg.h>
main()
{
if (!__power_pc())
exit(1);
puts("powerpc-ibm-aix3.2.5");
exit(0);
}
EOF
$CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
rm -f $dummy.c $dummy && rmdir $tmpdir
echo rs6000-ibm-aix3.2.5
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
exit 0 ;;
*:AIX:*:[45])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_ARCH=rs6000
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
exit 0 ;;
*:AIX:*:*)
echo rs6000-ibm-aix
exit 0 ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
exit 0 ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
exit 0 ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
exit 0 ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
exit 0 ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
exit 0 ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
exit 0 ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
9000/31? ) HP_ARCH=m68000 ;;
9000/[34]?? ) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "${sc_cpu_version}" in
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
532) # CPU_PA_RISC2_0
case "${sc_kernel_bits}" in
32) HP_ARCH="hppa2.0n" ;;
64) HP_ARCH="hppa2.0w" ;;
'') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
esac ;;
esac
fi
if [ "${HP_ARCH}" = "" ]; then
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#define _HPUX_SOURCE
#include <stdlib.h>
#include <unistd.h>
int main ()
{
#if defined(_SC_KERNEL_BITS)
long bits = sysconf(_SC_KERNEL_BITS);
#endif
long cpu = sysconf (_SC_CPU_VERSION);
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
case CPU_PA_RISC2_0:
#if defined(_SC_KERNEL_BITS)
switch (bits)
{
case 64: puts ("hppa2.0w"); break;
case 32: puts ("hppa2.0n"); break;
default: puts ("hppa2.0"); break;
} break;
#else /* !defined(_SC_KERNEL_BITS) */
puts ("hppa2.0"); break;
#endif
default: puts ("hppa1.0"); break;
}
exit (0);
}
EOF
(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null) && HP_ARCH=`$dummy`
if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
rm -f $dummy.c $dummy && rmdir $tmpdir
fi ;;
esac
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
exit 0 ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
exit 0 ;;
3050*:HI-UX:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <unistd.h>
int
main ()
{
long cpu = sysconf (_SC_CPU_VERSION);
/* The order matters, because CPU_IS_HP_MC68K erroneously returns
true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
results, however. */
if (CPU_IS_PA_RISC (cpu))
{
switch (cpu)
{
case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
default: puts ("hppa-hitachi-hiuxwe2"); break;
}
}
else if (CPU_IS_HP_MC68K (cpu))
puts ("m68k-hitachi-hiuxwe2");
else puts ("unknown-hitachi-hiuxwe2");
exit (0);
}
EOF
$CC_FOR_BUILD $dummy.c -o $dummy && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
rm -f $dummy.c $dummy && rmdir $tmpdir
echo unknown-hitachi-hiuxwe2
exit 0 ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
exit 0 ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
exit 0 ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
exit 0 ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
exit 0 ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
exit 0 ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
exit 0 ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
exit 0 ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
exit 0 ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit 0 ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
exit 0 ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
exit 0 ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
exit 0 ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY*T3D:*:*:*)
echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
exit 0 ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
exit 0 ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
exit 0 ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
exit 0 ;;
*:FreeBSD:*:*)
# Determine whether the default compiler uses glibc.
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <features.h>
#if __GLIBC__ >= 2
LIBC=gnu
#else
LIBC=
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
rm -f $dummy.c && rmdir $tmpdir
echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
exit 0 ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
exit 0 ;;
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
exit 0 ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
exit 0 ;;
x86:Interix*:3*)
echo i386-pc-interix3
exit 0 ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i386-pc-interix
exit 0 ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
exit 0 ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
exit 0 ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
*:GNU:*:*)
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
exit 0 ;;
arm*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
mips:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#undef CPU
#undef mips
#undef mipsel
#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
CPU=mipsel
#else
#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
CPU=mips
#else
CPU=
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
rm -f $dummy.c && rmdir $tmpdir
test x"${CPU}" != x && echo "${CPU}-pc-linux-gnu" && exit 0
;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
exit 0 ;;
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu
exit 0 ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
EV56) UNAME_MACHINE=alphaev56 ;;
PCA56) UNAME_MACHINE=alphapca56 ;;
PCA57) UNAME_MACHINE=alphapca56 ;;
EV6) UNAME_MACHINE=alphaev6 ;;
EV67) UNAME_MACHINE=alphaev67 ;;
EV68*) UNAME_MACHINE=alphaev68 ;;
esac
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
exit 0 ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA7*) echo hppa1.1-unknown-linux-gnu ;;
PA8*) echo hppa2.0-unknown-linux-gnu ;;
*) echo hppa-unknown-linux-gnu ;;
esac
exit 0 ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
exit 0 ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
exit 0 ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
exit 0 ;;
x86_64:Linux:*:*)
echo x86_64-unknown-linux-gnu
exit 0 ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
# problems with other programs or directories called `ld' in the path.
# Set LC_ALL=C to ensure ld outputs messages in English.
ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
| sed -ne '/supported targets:/!d
s/[ ][ ]*/ /g
s/.*supported targets: *//
s/ .*//
p'`
case "$ld_supported_targets" in
elf32-i386)
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
;;
a.out-i386-linux)
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
exit 0 ;;
coff-i386)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
exit 0 ;;
"")
# Either a pre-BFD a.out linker (linux-gnuoldld) or
# one that does not give us useful --help.
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
exit 0 ;;
esac
# Determine whether the default compiler is a.out or elf
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#include <features.h>
#ifdef __ELF__
# ifdef __GLIBC__
# if __GLIBC__ >= 2
LIBC=gnu
# else
LIBC=gnulibc1
# endif
# else
LIBC=gnulibc1
# endif
#else
#ifdef __INTEL_COMPILER
LIBC=gnu
#else
LIBC=gnuaout
#endif
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
rm -f $dummy.c && rmdir $tmpdir
test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
exit 0 ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I am not positive that other SVR4 systems won't match this,
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
exit 0 ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
exit 0 ;;
i*86:*:5:[78]*)
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
exit 0 ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
elif /bin/uname -X 2>/dev/null >/dev/null ; then
UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
&& UNAME_MACHINE=i586
(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
&& UNAME_MACHINE=i686
(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
&& UNAME_MACHINE=i686
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
exit 0 ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
exit 0 ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
exit 0 ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
exit 0 ;;
paragon:*:*:*)
echo i860-intel-osf1
exit 0 ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
exit 0 ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
exit 0 ;;
M68*:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& echo i486-ncr-sysv4.3${OS_REL} && exit 0
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
&& echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
&& echo i486-ncr-sysv4 && exit 0 ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
exit 0 ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
exit 0 ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
exit 0 ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
exit 0 ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
exit 0 ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
echo ${UNAME_MACHINE}-sni-sysv4
else
echo ns32k-sni-sysv
fi
exit 0 ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
exit 0 ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
exit 0 ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
exit 0 ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
exit 0 ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
exit 0 ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
exit 0 ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
exit 0 ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
exit 0 ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
exit 0 ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
exit 0 ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
exit 0 ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
exit 0 ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
exit 0 ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
exit 0 ;;
*:Darwin:*:*)
echo `uname -p`-apple-darwin${UNAME_RELEASE}
exit 0 ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
UNAME_PROCESSOR=i386
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
exit 0 ;;
*:QNX:*:4*)
echo i386-pc-qnx
exit 0 ;;
NSR-[GKLNPTVW]:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
exit 0 ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
exit 0 ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
exit 0 ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
exit 0 ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
# operating systems.
if test "$cputype" = "386"; then
UNAME_MACHINE=i386
else
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-unknown-plan9
exit 0 ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
exit 0 ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
exit 0 ;;
*:TENEX:*:*)
echo pdp10-unknown-tenex
exit 0 ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
exit 0 ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
exit 0 ;;
*:TOPS-20:*:*)
echo pdp10-unknown-tops20
exit 0 ;;
*:ITS:*:*)
echo pdp10-unknown-its
exit 0 ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
exit 0 ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
exit 0 ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
eval $set_cc_for_build
cat >$dummy.c <<EOF
#ifdef _SEQUENT_
# include <sys/types.h>
# include <sys/utsname.h>
#endif
main ()
{
#if defined (sony)
#if defined (MIPSEB)
/* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
I don't know.... */
printf ("mips-sony-bsd\n"); exit (0);
#else
#include <sys/param.h>
printf ("m68k-sony-newsos%s\n",
#ifdef NEWSOS4
"4"
#else
""
#endif
); exit (0);
#endif
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
printf ("arm-acorn-riscix"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
printf ("m68k-hp-bsd\n"); exit (0);
#endif
#if defined (NeXT)
#if !defined (__ARCHITECTURE__)
#define __ARCHITECTURE__ "m68k"
#endif
int version;
version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
if (version < 4)
printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
else
printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
exit (0);
#endif
#if defined (MULTIMAX) || defined (n16)
#if defined (UMAXV)
printf ("ns32k-encore-sysv\n"); exit (0);
#else
#if defined (CMU)
printf ("ns32k-encore-mach\n"); exit (0);
#else
printf ("ns32k-encore-bsd\n"); exit (0);
#endif
#endif
#endif
#if defined (__386BSD__)
printf ("i386-pc-bsd\n"); exit (0);
#endif
#if defined (sequent)
#if defined (i386)
printf ("i386-sequent-dynix\n"); exit (0);
#endif
#if defined (ns32000)
printf ("ns32k-sequent-dynix\n"); exit (0);
#endif
#endif
#if defined (_SEQUENT_)
struct utsname un;
uname(&un);
if (strncmp(un.version, "V2", 2) == 0) {
printf ("i386-sequent-ptx2\n"); exit (0);
}
if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
printf ("i386-sequent-ptx1\n"); exit (0);
}
printf ("i386-sequent-ptx\n"); exit (0);
#endif
#if defined (vax)
# if !defined (ultrix)
# include <sys/param.h>
# if defined (BSD)
# if BSD == 43
printf ("vax-dec-bsd4.3\n"); exit (0);
# else
# if BSD == 199006
printf ("vax-dec-bsd4.3reno\n"); exit (0);
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# endif
# else
printf ("vax-dec-bsd\n"); exit (0);
# endif
# else
printf ("vax-dec-ultrix\n"); exit (0);
# endif
#endif
#if defined (alliant) && defined (i860)
printf ("i860-alliant-bsd\n"); exit (0);
#endif
exit (1);
}
EOF
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && $dummy && rm -f $dummy.c $dummy && rmdir $tmpdir && exit 0
rm -f $dummy.c $dummy && rmdir $tmpdir
# Apollos put the system type in the environment.
test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
# Convex versions that predate uname can use getsysinfo(1)
if [ -x /usr/convex/getsysinfo ]
then
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
exit 0 ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
exit 0 ;;
c34*)
echo c34-convex-bsd
exit 0 ;;
c38*)
echo c38-convex-bsd
exit 0 ;;
c4*)
echo c4-convex-bsd
exit 0 ;;
esac
fi
cat >&2 <<EOF
$0: unable to guess system type
This script, last modified $timestamp, has failed to recognize
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
ftp://ftp.gnu.org/pub/gnu/config/
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
pertinent to <config-patches@gnu.org> in order to provide the needed
information to handle your system.
config.guess timestamp = $timestamp
uname -m = `(uname -m) 2>/dev/null || echo unknown`
uname -r = `(uname -r) 2>/dev/null || echo unknown`
uname -s = `(uname -s) 2>/dev/null || echo unknown`
uname -v = `(uname -v) 2>/dev/null || echo unknown`
/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
hostinfo = `(hostinfo) 2>/dev/null`
/bin/universe = `(/bin/universe) 2>/dev/null`
/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
/bin/arch = `(/bin/arch) 2>/dev/null`
/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
UNAME_MACHINE = ${UNAME_MACHINE}
UNAME_RELEASE = ${UNAME_RELEASE}
UNAME_SYSTEM = ${UNAME_SYSTEM}
UNAME_VERSION = ${UNAME_VERSION}
EOF
exit 1
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
================================================
FILE: config.sub
================================================
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
# 2000, 2001, 2002 Free Software Foundation, Inc.
timestamp='2002-07-03'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
# can handle that machine. It does not imply ALL GNU software can.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
# Configuration subroutine to validate and canonicalize a configuration type.
# Supply the specified configuration type as an argument.
# If it is invalid, we print an error message on stderr and exit with code 1.
# Otherwise, we print the canonical config type on stdout and succeed.
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
# that are meaningful with *any* GNU software.
# Each package is responsible for reporting which valid configurations
# it does not support. The user should be able to distinguish
# a failure to support a valid configuration from a meaningless
# configuration.
# The goal of this file is to map all the various variations of a given
# machine specification into a single specification in the form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
# or in some cases, the newer four-part form:
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
Usage: $0 [OPTION] CPU-MFR-OPSYS
$0 [OPTION] ALIAS
Canonicalize a configuration name.
Operation modes:
-h, --help print this help, then exit
-t, --time-stamp print date of last modification, then exit
-v, --version print version number, then exit
Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
echo "$timestamp" ; exit 0 ;;
--version | -v )
echo "$version" ; exit 0 ;;
--help | --h* | -h )
echo "$usage"; exit 0 ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
break ;;
-* )
echo "$me: invalid option $1$help"
exit 1 ;;
*local*)
# First pass through any local machine types.
echo $1
exit 0;;
* )
break ;;
esac
done
case $# in
0) echo "$me: missing argument$help" >&2
exit 1;;
1) ;;
*) echo "$me: too many arguments$help" >&2
exit 1;;
esac
# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
# Here we must recognize all the valid KERNEL-OS combinations.
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
case $maybe_os in
nto-qnx* | linux-gnu* | freebsd*-gnu* | storm-chaos* | os2-emx* | windows32-* | rtmk-nova*)
os=-$maybe_os
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
;;
*)
basic_machine=`echo $1 | sed 's/-[^-]*$//'`
if [ $basic_machine != $1 ]
then os=`echo $1 | sed 's/.*-/-/'`
else os=; fi
;;
esac
### Let's recognize common machines as not being operating systems so
### that things like config.sub decstation-3100 work. We also
### recognize some manufacturers as not being operating systems, so we
### can provide default operating systems below.
case $os in
-sun*os*)
# Prevent following clause from handling this invalid input.
;;
-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-apple | -axis)
os=
basic_machine=$1
;;
-sim | -cisco | -oki | -wec | -winbond)
os=
basic_machine=$1
;;
-scout)
;;
-wrs)
os=-vxworks
basic_machine=$1
;;
-chorusos*)
os=-chorusos
basic_machine=$1
;;
-chorusrdb)
os=-chorusrdb
basic_machine=$1
;;
-hiux*)
os=-hiuxwe2
;;
-sco5)
os=-sco3.2v5
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco4)
os=-sco3.2v4
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2.[4-9]*)
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco3.2v[4-9]*)
# Don't forget version if it is 3.2v4 or newer.
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-sco*)
os=-sco3.2v2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-udk*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-isc)
os=-isc2.2
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-clix*)
basic_machine=clipper-intergraph
;;
-isc*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
;;
-lynx*)
os=-lynxos
;;
-ptx*)
basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
;;
-windowsnt*)
os=`echo $os | sed -e 's/windowsnt/winnt/'`
;;
-psos*)
os=-psos
;;
-mint | -mint[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
esac
# Decode aliases for certain CPU-COMPANY combinations.
case $basic_machine in
# Recognize the basic CPU types without company name.
# Some are omitted here because they have special meanings below.
1750a | 580 \
| a29k \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k \
| m32r | m68000 | m68k | m88k | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
| mips64orion | mips64orionel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
| mipsisa32 | mipsisa32el \
| mipsisa64 | mipsisa64el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
| ns16k | ns32k \
| openrisc | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
| sh | sh[1234] | sh3e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
| strongarm \
| tahoe | thumb | tic80 | tron \
| v850 | v850e \
| we32k \
| x86 | xscale | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
m6811 | m68hc11 | m6812 | m68hc12)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
os=-none
;;
m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
;;
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64)
basic_machine=$basic_machine-pc
;;
# Object if more than one company name word.
*-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
# Recognize the basic CPU types with company name.
580-* \
| a29k-* \
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
| bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c54x-* \
| clipper-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* \
| m32r-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
| m88110-* | m88k-* | mcore-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
| mips64orion-* | mips64orionel-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipstx39 | mipstx39el \
| none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
| sh-* | sh[1234]-* | sh3e-* | sh[34]eb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* | tic30-* | tic54x-* | tic80-* | tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
| xtensa-* \
| ymp-* \
| z8k-*)
;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
basic_machine=i386-unknown
os=-bsd
;;
3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
basic_machine=m68000-att
;;
3b*)
basic_machine=we32k-att
;;
a29khif)
basic_machine=a29k-amd
os=-udi
;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
;;
alliant | fx80)
basic_machine=fx80-alliant
;;
altos | altos3068)
basic_machine=m68k-altos
;;
am29k)
basic_machine=a29k-none
os=-bsd
;;
amdahl)
basic_machine=580-amdahl
os=-sysv
;;
amiga | amiga-*)
basic_machine=m68k-unknown
;;
amigaos | amigados)
basic_machine=m68k-unknown
os=-amigaos
;;
amigaunix | amix)
basic_machine=m68k-unknown
os=-sysv4
;;
apollo68)
basic_machine=m68k-apollo
os=-sysv
;;
apollo68bsd)
basic_machine=m68k-apollo
os=-bsd
;;
aux)
basic_machine=m68k-apple
os=-aux
;;
balance)
basic_machine=ns32k-sequent
os=-dynix
;;
c90)
basic_machine=c90-cray
os=-unicos
;;
convex-c1)
basic_machine=c1-convex
os=-bsd
;;
convex-c2)
basic_machine=c2-convex
os=-bsd
;;
convex-c32)
basic_machine=c32-convex
os=-bsd
;;
convex-c34)
basic_machine=c34-convex
os=-bsd
;;
convex-c38)
basic_machine=c38-convex
os=-bsd
;;
cray | j90)
basic_machine=j90-cray
os=-unicos
;;
crds | unos)
basic_machine=m68k-crds
;;
cris | cris-* | etrax*)
basic_machine=cris-axis
;;
da30 | da30-*)
basic_machine=m68k-da30
;;
decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
basic_machine=mips-dec
;;
decsystem10* | dec10*)
basic_machine=pdp10-dec
os=-tops10
;;
decsystem20* | dec20*)
basic_machine=pdp10-dec
os=-tops20
;;
delta | 3300 | motorola-3300 | motorola-delta \
| 3300-motorola | delta-motorola)
basic_machine=m68k-motorola
;;
delta88)
basic_machine=m88k-motorola
os=-sysv3
;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
;;
dpx2* | dpx2*-bull)
basic_machine=m68k-bull
os=-sysv3
;;
ebmon29k)
basic_machine=a29k-amd
os=-ebmon
;;
elxsi)
basic_machine=elxsi-elxsi
os=-bsd
;;
encore | umax | mmax)
basic_machine=ns32k-encore
;;
es1800 | OSE68k | ose68k | ose | OSE)
basic_machine=m68k-ericsson
os=-ose
;;
fx2800)
basic_machine=i860-alliant
;;
genix)
basic_machine=ns32k-ns
;;
gmicro)
basic_machine=tron-gmicro
os=-sysv
;;
go32)
basic_machine=i386-pc
os=-go32
;;
h3050r* | hiux*)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
;;
h8300hms)
basic_machine=h8300-hitachi
os=-hms
;;
h8300xray)
basic_machine=h8300-hitachi
os=-xray
;;
h8500hms)
basic_machine=h8500-hitachi
os=-hms
;;
harris)
basic_machine=m88k-harris
os=-sysv3
;;
hp300-*)
basic_machine=m68k-hp
;;
hp300bsd)
basic_machine=m68k-hp
os=-bsd
;;
hp300hpux)
basic_machine=m68k-hp
os=-hpux
;;
hp3k9[0-9][0-9] | hp9[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k2[0-9][0-9] | hp9k31[0-9])
basic_machine=m68000-hp
;;
hp9k3[2-9][0-9])
basic_machine=m68k-hp
;;
hp9k6[0-9][0-9] | hp6[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hp9k7[0-79][0-9] | hp7[0-79][0-9])
basic_machine=hppa1.1-hp
;;
hp9k78[0-9] | hp78[0-9])
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
# FIXME: really hppa2.0-hp
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][13679] | hp8[0-9][13679])
basic_machine=hppa1.1-hp
;;
hp9k8[0-9][0-9] | hp8[0-9][0-9])
basic_machine=hppa1.0-hp
;;
hppa-next)
os=-nextstep3
;;
hppaosf)
basic_machine=hppa1.1-hp
os=-osf
;;
hppro)
basic_machine=hppa1.1-hp
os=-proelf
;;
i370-ibm* | ibm*)
basic_machine=i370-ibm
;;
# I'm not sure what "Sysv32" means. Should this be sysv3.2?
i*86v32)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv32
;;
i*86v4*)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv4
;;
i*86v)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-sysv
;;
i*86sol2)
basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
os=-solaris2
;;
i386mach)
basic_machine=i386-mach
os=-mach
;;
i386-vsta | vsta)
basic_machine=i386-unknown
os=-vsta
;;
iris | iris4d)
basic_machine=mips-sgi
case $os in
-irix*)
;;
*)
os=-irix4
;;
esac
;;
isi68 | isi)
basic_machine=m68k-isi
os=-sysv
;;
m88k-omron*)
basic_machine=m88k-omron
;;
magnum | m3230)
basic_machine=mips-mips
os=-sysv
;;
merlin)
basic_machine=ns32k-utek
os=-sysv
;;
mingw32)
basic_machine=i386-pc
os=-mingw32
;;
miniframe)
basic_machine=m68000-convergent
;;
*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
basic_machine=m68k-atari
os=-mint
;;
mips3*-*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
;;
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
mmix*)
basic_machine=mmix-knuth
os=-mmixware
;;
monitor)
basic_machine=m68k-rom68k
os=-coff
;;
morphos)
basic_machine=powerpc-unknown
os=-morphos
;;
msdos)
basic_machine=i386-pc
os=-msdos
;;
mvs)
basic_machine=i370-ibm
os=-mvs
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4
;;
netbsd386)
basic_machine=i386-unknown
os=-netbsd
;;
netwinder)
basic_machine=armv4l-rebel
os=-linux
;;
news | news700 | news800 | news900)
basic_machine=m68k-sony
os=-newsos
;;
news1000)
basic_machine=m68030-sony
os=-newsos
;;
news-3600 | risc-news)
basic_machine=mips-sony
os=-newsos
;;
necv70)
basic_machine=v70-nec
os=-sysv
;;
next | m*-next )
basic_machine=m68k-next
case $os in
-nextstep* )
;;
-ns2*)
os=-nextstep2
;;
*)
os=-nextstep3
;;
esac
;;
nh3000)
basic_machine=m68k-harris
os=-cxux
;;
nh[45]000)
basic_machine=m88k-harris
os=-cxux
;;
nindy960)
basic_machine=i960-intel
os=-nindy
;;
mon960)
basic_machine=i960-intel
os=-mon960
;;
nonstopux)
basic_machine=mips-compaq
os=-nonstopux
;;
np1)
basic_machine=np1-gould
;;
nsr-tandem)
basic_machine=nsr-tandem
;;
op50n-* | op60c-*)
basic_machine=hppa1.1-oki
os=-proelf
;;
or32 | or32-*)
basic_machine=or32-unknown
os=-coff
;;
OSE68000 | ose68000)
basic_machine=m68000-ericsson
os=-ose
;;
os68k)
basic_machine=m68k-none
os=-os68k
;;
pa-hitachi)
basic_machine=hppa1.1-hitachi
os=-hiuxwe2
;;
paragon)
basic_machine=i860-intel
os=-osf
;;
pbd)
basic_machine=sparc-tti
;;
pbb)
basic_machine=m68k-tti
;;
pc532 | pc532-*)
basic_machine=ns32k-pc532
;;
pentium | p5 | k5 | k6 | nexgen | viac3)
basic_machine=i586-pc
;;
pentiumpro | p6 | 6x86 | athlon)
basic_machine=i686-pc
;;
pentiumii | pentium2)
basic_machine=i686-pc
;;
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumpro-* | p6-* | 6x86-* | athlon-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pentiumii-* | pentium2-*)
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
pn)
basic_machine=pn-gould
;;
power) basic_machine=power-ibm
;;
ppc) basic_machine=powerpc-unknown
;;
ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppcle | powerpclittle | ppc-le | powerpc-little)
basic_machine=powerpcle-unknown
;;
ppcle-* | powerpclittle-*)
basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64) basic_machine=powerpc64-unknown
;;
ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ppc64le | powerpc64little | ppc64-le | powerpc64-little)
basic_machine=powerpc64le-unknown
;;
ppc64le-* | powerpc64little-*)
basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
;;
ps2)
basic_machine=i386-ibm
;;
pw32)
basic_machine=i586-unknown
os=-pw32
;;
rom68k)
basic_machine=m68k-rom68k
os=-coff
;;
rm[46]00)
basic_machine=mips-siemens
;;
rtpc | rtpc-*)
basic_machine=romp-ibm
;;
s390 | s390-*)
basic_machine=s390-ibm
;;
s390x | s390x-*)
basic_machine=s390x-ibm
;;
sa29200)
basic_machine=a29k-amd
os=-udi
;;
sequent)
basic_machine=i386-sequent
;;
sh)
basic_machine=sh-hitachi
os=-hms
;;
sparclite-wrs | simso-wrs)
basic_machine=sparclite-wrs
os=-vxworks
;;
sps7)
basic_machine=m68k-bull
os=-sysv2
;;
spur)
basic_machine=spur-unknown
;;
st2000)
basic_machine=m68k-tandem
;;
stratus)
basic_machine=i860-stratus
os=-sysv4
;;
sun2)
basic_machine=m68000-sun
;;
sun2os3)
basic_machine=m68000-sun
os=-sunos3
;;
sun2os4)
basic_machine=m68000-sun
os=-sunos4
;;
sun3os3)
basic_machine=m68k-sun
os=-sunos3
;;
sun3os4)
basic_machine=m68k-sun
os=-sunos4
;;
sun4os3)
basic_machine=sparc-sun
os=-sunos3
;;
sun4os4)
basic_machine=sparc-sun
os=-sunos4
;;
sun4sol2)
basic_machine=sparc-sun
os=-solaris2
;;
sun3 | sun3-*)
basic_machine=m68k-sun
;;
sun4)
basic_machine=sparc-sun
;;
sun386 | sun386i | roadrunner)
basic_machine=i386-sun
;;
sv1)
basic_machine=sv1-cray
os=-unicos
;;
symmetry)
basic_machine=i386-sequent
os=-dynix
;;
t3d)
basic_machine=alpha-cray
os=-unicos
;;
t3e)
basic_machine=alphaev5-cray
os=-unicos
;;
t90)
basic_machine=t90-cray
os=-unicos
;;
tic54x | c54x*)
basic_machine=tic54x-unknown
os=-coff
;;
tx39)
basic_machine=mipstx39-unknown
;;
tx39el)
basic_machine=mipstx39el-unknown
;;
toad1)
basic_machine=pdp10-xkl
os=-tops20
;;
tower | tower-32)
basic_machine=m68k-ncr
;;
udi29k)
basic_machine=a29k-amd
os=-udi
;;
ultra3)
basic_machine=a29k-nyu
os=-sym1
;;
v810 | necv810)
basic_machine=v810-nec
os=-none
;;
vaxv)
basic_machine=vax-dec
os=-sysv
;;
vms)
basic_machine=vax-dec
os=-vms
;;
vpp*|vx|vx-*)
basic_machine=f301-fujitsu
;;
vxworks960)
basic_machine=i960-wrs
os=-vxworks
;;
vxworks68)
basic_machine=m68k-wrs
os=-vxworks
;;
vxworks29k)
basic_machine=a29k-wrs
os=-vxworks
;;
w65*)
basic_machine=w65-wdc
os=-none
;;
w89k-*)
basic_machine=hppa1.1-winbond
os=-proelf
;;
windows32)
basic_machine=i386-pc
os=-windows32-msvcrt
;;
xps | xps100)
basic_machine=xps100-honeywell
;;
ymp)
basic_machine=ymp-cray
os=-unicos
;;
z8k-*-coff)
basic_machine=z8k-unknown
os=-sim
;;
none)
basic_machine=none-none
os=-none
;;
# Here we handle the default manufacturer of certain CPU types. It is in
# some cases the only manufacturer, in others, it is the most popular.
w89k)
basic_machine=hppa1.1-winbond
;;
op50n)
basic_machine=hppa1.1-oki
;;
op60c)
basic_machine=hppa1.1-oki
;;
romp)
basic_machine=romp-ibm
;;
rs6000)
basic_machine=rs6000-ibm
;;
vax)
basic_machine=vax-dec
;;
pdp10)
# there are many clones, so DEC is not a safe bet
basic_machine=pdp10-unknown
;;
pdp11)
basic_machine=pdp11-dec
;;
we32k)
basic_machine=we32k-att
;;
sh3 | sh4 | sh3eb | sh4eb | sh[1234]le | sh3ele)
basic_machine=sh-unknown
;;
sh64)
basic_machine=sh64-unknown
;;
sparc | sparcv9 | sparcv9b)
basic_machine=sparc-sun
;;
cydra)
basic_machine=cydra-cydrome
;;
orion)
basic_machine=orion-highlevel
;;
orion105)
basic_machine=clipper-highlevel
;;
mac | mpw | mac-mpw)
basic_machine=m68k-apple
;;
pmac | pmac-mpw)
basic_machine=powerpc-apple
;;
c4x*)
basic_machine=c4x-none
os=-coff
;;
*-unknown)
# Make sure to match an already-canonicalized machine name.
;;
*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
exit 1
;;
esac
# Here we canonicalize certain aliases for manufacturers.
case $basic_machine in
*-digital*)
basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
;;
*-commodore*)
basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
;;
*)
;;
esac
# Decode manufacturer-specific aliases for certain operating systems.
if [ x"$os" != x"" ]
then
case $os in
# First match some system type aliases
# that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
-solaris)
os=-solaris2
;;
-svr4*)
os=-sysv4
;;
-unixware*)
os=-sysv4.2uw
;;
-gnu/linux*)
os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
;;
# First accept the basic system types.
# The portable systems comes first.
# Each alternative MUST END IN A *, to match a version number.
# -sysv* is not here because it comes later, after sysvr4.
-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
| -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
| -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
| -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
| -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
| -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* | -powermax*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
case $basic_machine in
x86-* | i*86-*)
;;
*)
os=-nto$os
;;
esac
;;
-nto*)
os=-nto-qnx
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
| -windows* | -osx | -abug | -netware* | -os9* | -beos* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
os=`echo $os | sed -e 's|mac|macos|'`
;;
-linux*)
os=`echo $os | sed -e 's|linux|linux-gnu|'`
;;
-sunos5*)
os=`echo $os | sed -e 's|sunos5|solaris2|'`
;;
-sunos6*)
os=`echo $os | sed -e 's|sunos6|solaris3|'`
;;
-opened*)
os=-openedition
;;
-wince*)
os=-wince
;;
-osfrose*)
os=-osfrose
;;
-osf*)
os=-osf
;;
-utek*)
os=-bsd
;;
-dynix*)
os=-bsd
;;
-acis*)
os=-aos
;;
-atheos*)
os=-atheos
;;
-386bsd)
os=-bsd
;;
-ctix* | -uts*)
os=-sysv
;;
-nova*)
os=-rtmk-nova
;;
-ns2 )
os=-nextstep2
;;
-nsk*)
os=-nsk
;;
# Preserve the version number of sinix5.
-sinix5.*)
os=`echo $os | sed -e 's|sinix|sysv|'`
;;
-sinix*)
os=-sysv4
;;
-triton*)
os=-sysv3
;;
-oss*)
os=-sysv3
;;
-svr4)
os=-sysv4
;;
-svr3)
os=-sysv3
;;
-sysvr4)
os=-sysv4
;;
# This must come after -sysvr4.
-sysv*)
;;
-ose*)
os=-ose
;;
-es1800*)
os=-ose
;;
-xenix)
os=-xenix
;;
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
os=-mint
;;
-none)
;;
*)
# Get rid of the `-' at the beginning of $os.
os=`echo $os | sed 's/[^-]*-//'`
echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
exit 1
;;
esac
else
# Here we handle the default operating systems that come with various machines.
# The value should be what the vendor currently ships out the door with their
# machine or put another way, the most popular os provided with the machine.
# Note that if you're going to try to match "-MANUFACTURER" here (say,
# "-sun"), then you have to tell the case statement up towards the top
# that MANUFACTURER isn't an operating system. Otherwise, code above
# will signal an error saying that MANUFACTURER isn't an operating
# system, and we'll never get to this point.
case $basic_machine in
*-acorn)
os=-riscix1.2
;;
arm*-rebel)
os=-linux
;;
arm*-semi)
os=-aout
;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
;;
pdp11-*)
os=-none
;;
*-dec | vax-*)
os=-ultrix4.2
;;
m68*-apollo)
os=-domain
;;
i386-sun)
os=-sunos4.0.2
;;
m68000-sun)
os=-sunos3
# This also exists in the configure program, but was not the
# default.
# os=-sunos4
;;
m68*-cisco)
os=-aout
;;
mips*-cisco)
os=-elf
;;
mips*-*)
os=-elf
;;
or32-*)
os=-coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=-sysv3
;;
sparc-* | *-sun)
os=-sunos4.1.1
;;
*-be)
os=-beos
;;
*-ibm)
os=-aix
;;
*-wec)
os=-proelf
;;
*-winbond)
os=-proelf
;;
*-oki)
os=-proelf
;;
*-hp)
os=-hpux
;;
*-hitachi)
os=-hiux
;;
i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
os=-sysv
;;
*-cbm)
os=-amigaos
;;
*-dg)
os=-dgux
;;
*-dolphin)
os=-sysv3
;;
m68k-ccur)
os=-rtu
;;
m88k-omron*)
os=-luna
;;
*-next )
os=-nextstep
;;
*-sequent)
os=-ptx
;;
*-crds)
os=-unos
;;
*-ns)
os=-genix
;;
i370-*)
os=-mvs
;;
*-next)
os=-nextstep3
;;
*-gould)
os=-sysv
;;
*-highlevel)
os=-bsd
;;
*-encore)
os=-bsd
;;
*-sgi)
os=-irix
;;
*-siemens)
os=-sysv4
;;
*-masscomp)
os=-rtu
;;
f30[01]-fujitsu | f700-fujitsu)
os=-uxpv
;;
*-rom68k)
os=-coff
;;
*-*bug)
os=-coff
;;
*-apple)
os=-macos
;;
*-atari*)
os=-mint
;;
*)
os=-none
;;
esac
fi
# Here we handle the case where we know the os, and the CPU type, but not the
# manufacturer. We pick the logical manufacturer.
vendor=unknown
case $basic_machine in
*-unknown)
case $os in
-riscix*)
vendor=acorn
;;
-sunos*)
vendor=sun
;;
-aix*)
vendor=ibm
;;
-beos*)
vendor=be
;;
-hpux*)
vendor=hp
;;
-mpeix*)
vendor=hp
;;
-hiux*)
vendor=hitachi
;;
-unos*)
vendor=crds
;;
-dgux*)
vendor=dg
;;
-luna*)
vendor=omron
;;
-genix*)
vendor=ns
;;
-mvs* | -opened*)
vendor=ibm
;;
-ptx*)
vendor=sequent
;;
-vxsim* | -vxworks* | -windiss*)
vendor=wrs
;;
-aux*)
vendor=apple
;;
-hms*)
vendor=hitachi
;;
-mpw* | -macos*)
vendor=apple
;;
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
vendor=atari
;;
-vos*)
vendor=stratus
;;
esac
basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
;;
esac
echo $basic_machine$os
exit 0
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "timestamp='"
# time-stamp-format: "%:y-%02m-%02d"
# time-stamp-end: "'"
# End:
================================================
FILE: configure.ac
================================================
AC_PREREQ(2.57)
AC_INIT(auth-ldap, [2.0], landonf@opendarwin.org)
AC_CONFIG_SRCDIR(${srcdir}/src/auth-ldap.m)
AC_CONFIG_HEADERS(config.h)
AC_CANONICAL_SYSTEM
# Compiler
AC_PROG_CC(clang gcc)
AC_PROG_CC_C99
AC_PROG_OBJC(clang gcc)
TR_WERROR
AC_CACHE_SAVE
# Programs
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
AC_CHECK_TOOL(RANLIB, ranlib, :)
AC_CHECK_TOOL(AR, ar, :)
AC_PATH_PROG([RE2C], [re2c], [no])
if test x"$RE2C" = x"no"; then
AC_MSG_ERROR([re2c was not found in your PATH. It can be downloaded from http://re2c.org])
fi
AC_PATH_PROG([DOXYGEN], [doxygen], [no])
if test x"$DOXYGEN" = x"no"; then
DOXYGEN="false"
fi
AC_PATH_PROG([DOT], [dot], [no])
if test x"$DOT" = x"no"; then
DOTDIR=""
else
DOTDIR=`AS_DIRNAME([$DOT])`
fi
AC_SUBST([DOTDIR])
AC_CACHE_SAVE
# Headers
AC_HEADER_STDC
AC_CACHE_SAVE
# Threads
ACX_PTHREAD
AC_CACHE_SAVE
# Platform
OD_CONFIG_PLUGIN
TR_PF_IOCTL
AC_DEFINE([_GNU_SOURCE], 1, [Required for vasprintf() on glibc systems])
AC_CACHE_SAVE
# Functions
AC_CHECK_FUNCS([strlcpy])
AC_CACHE_SAVE
# Libraries
OD_OPENLDAP
TR_OPENSSL
AC_CHECK_FRAMEWORK(Foundation, NSStringFromSelector, [
AC_DEFINE(HAVE_FRAMEWORK_FOUNDATION, 1, [Define if you have the Foundation framework.])
OBJC_LIBS="${OBJC_LIBS} -framework Foundation"
])
AC_CACHE_SAVE
# OpenVPN
OD_OPENVPN_HEADER
AC_CACHE_SAVE
# Objective-C Runtime
OD_OBJC_RUNTIME
AC_CACHE_SAVE
# Output
AC_CONFIG_FILES([
Makefile
docs/Makefile
docs/doxyfile
Mk/autoconf.mk
Mk/compile.mk
Mk/subdir.mk
src/Makefile
tests/Makefile
tools/Makefile
])
AC_OUTPUT
================================================
FILE: docs/Makefile.in
================================================
srcdir= @srcdir@
top_srcdir= @top_srcdir@
top_builddir= @top_builddir@
VPATH= @srcdir@
include ${top_builddir}/Mk/autoconf.mk
include ${top_builddir}/Mk/compile.mk
include ${top_builddir}/Mk/subdir.mk
SOURCEDIR= ${srcdir}/xml
XHTMLDIR= xhtml
STYLESHEET= http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl
XSTYLESHEET= http://docbook.sourceforge.net/release/xsl/current/xhtml/chunk.xsl
RESOURCES= ${srcdir}/resources/
CSS_STYLESHEET= docbook.css
STRINGPARAMS= --stringparam html.stylesheet ${CSS_STYLESHEET}
.PHONY: all
.PHONY: clean
#.PHONY: install
.PHONY: xhtml
.PHONY: check
.PHONY: tidy
codedocs::
${DOXYGEN} doxyfile
manual::
mkdir -p ${XHTMLDIR}
install ${RESOURCES}${CSS_STYLESHEET} ${XHTMLDIR}
xsltproc --xinclude ${STRINGPARAMS} -o "${XHTMLDIR}/" "${XSTYLESHEET}" "${SOURCEDIR}/auth-ldap.xml"
docs:: codedocs manual
check:
xmllint --xinclude --noout "${SOURCEDIR}/auth-ldap.xml"
clean::
rm -rf ${HTMLDIR} ${XHTMLDIR} code
distclean:: clean
rm -f Makefile doxyfile
================================================
FILE: docs/doxyfile.in
================================================
# Doxyfile 1.5.2
# This file describes the settings to be used by the documentation system
# doxygen (www.doxygen.org) for a project
#
# All text after a hash (#) is considered a comment and will be ignored
# The format is:
# TAG = value [value, ...]
# For lists items can also be appended using:
# TAG += value [value, ...]
# Values that contain spaces should be placed between quotes (" ")
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
# This tag specifies the encoding used for all characters in the config file that
# follow. The default is UTF-8 which is also the encoding used for all text before
# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into
# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of
# possible encodings.
DOXYFILE_ENCODING = UTF-8
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
# by quotes) that should identify the project.
PROJECT_NAME = "OpenVPN Auth-LDAP"
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
# This could be handy for archiving the generated documentation or
# if some version control system is used.
PROJECT_NUMBER = @PACKAGE_VERSION@
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
# If a relative path is entered, it will be relative to the location
# where doxygen was started. If left blank the current directory will be used.
OUTPUT_DIRECTORY = code
# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
# 4096 sub-directories (in 2 levels) under the output directory of each output
# format and will distribute the generated files over these directories.
# Enabling this option can be useful when feeding doxygen a huge amount of
# source files, where putting all generated files in the same directory would
# otherwise cause performance problems for the file system.
CREATE_SUBDIRS = NO
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
# documentation generated by doxygen is written. Doxygen will use this
# information to generate all constant output in the proper language.
# The default language is English, other supported languages are:
# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian,
# Italian, Japanese, Japanese-en (Japanese with English messages), Korean,
# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian,
# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
OUTPUT_LANGUAGE = English
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
# include brief member descriptions after the members that are listed in
# the file and class documentation (similar to JavaDoc).
# Set to NO to disable this.
BRIEF_MEMBER_DESC = YES
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
# the brief description of a member or function before the detailed description.
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
# brief descriptions will be completely suppressed.
REPEAT_BRIEF = YES
# This tag implements a quasi-intelligent brief description abbreviator
# that is used to form the text in various listings. Each string
# in this list, if found as the leading text of the brief description, will be
# stripped from the text and the result after processing the whole list, is
# used as the annotated text. Otherwise, the brief description is used as-is.
# If left blank, the following values are used ("$name" is automatically
# replaced with the name of the entity): "The $name class" "The $name widget"
# "The $name file" "is" "provides" "specifies" "contains"
# "represents" "a" "an" "the"
ABBREVIATE_BRIEF =
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
# Doxygen will generate a detailed section even if there is only a brief
# description.
ALWAYS_DETAILED_SEC = NO
# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
# inherited members of a class in the documentation of that class as if those
# members were ordinary class members. Constructors, destructors and assignment
# operators of the base classes will not be shown.
INLINE_INHERITED_MEMB = NO
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
# path before files name in the file list and in the header files. If set
# to NO the shortest path that makes the file name unique will be used.
FULL_PATH_NAMES = NO
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
# can be used to strip a user-defined part of the path. Stripping is
# only done if one of the specified strings matches the left-hand part of
# the path. The tag can be used to show relative paths in the file list.
# If left blank the directory from which doxygen is run is used as the
# path to strip.
STRIP_FROM_PATH =
# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
# the path mentioned in the documentation of a class, which tells
# the reader which header file to include in order to use a class.
# If left blank only the name of the header file containing the class
# definition is used. Otherwise one should specify the include paths that
# are normally passed to the compiler using the -I flag.
STRIP_FROM_INC_PATH =
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
# (but less readable) file names. This can be useful is your file systems
# doesn't support long names like on DOS, Mac, or CD-ROM.
SHORT_NAMES = NO
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
# will interpret the first line (until the first dot) of a JavaDoc-style
# comment as the brief description. If set to NO, the JavaDoc
# comments will behave just like the Qt-style comments (thus requiring an
# explicit @brief command for a brief description.
JAVADOC_AUTOBRIEF = YES
# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
# treat a multi-line C++ special comment block (i.e. a block of //! or ///
# comments) as a brief description. This used to be the default behaviour.
# The new default is to treat a multi-line C++ comment block as a detailed
# description. Set this tag to YES if you prefer the old behaviour instead.
MULTILINE_CPP_IS_BRIEF = NO
# If the DETAILS_AT_TOP tag is set to YES then Doxygen
# will output the detailed description near the top, like JavaDoc.
# If set to NO, the detailed description appears after the member
# documentation.
DETAILS_AT_TOP = NO
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
# member inherits the documentation from any documented member that it
# re-implements.
INHERIT_DOCS = YES
# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
# a new page for each member. If set to NO, the documentation of a member will
# be part of the file/class/namespace that contains it.
SEPARATE_MEMBER_PAGES = NO
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments.
TAB_SIZE = 8
# This tag can be used to specify a number of aliases that acts
# as commands in the documentation. An alias has the form "name=value".
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
# put the command \sideeffect (or @sideeffect) in the documentation, which
# will result in a user-defined paragraph with heading "Side Effects:".
# You can put \n's in the value part of an alias to insert newlines.
ALIASES =
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
# sources only. Doxygen will then generate output that is more tailored for C.
# For instance, some of the names that are used will be different. The list
# of all members will be omitted, etc.
OPTIMIZE_OUTPUT_FOR_C = NO
# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
# sources only. Doxygen will then generate output that is more tailored for Java.
# For instance, namespaces will be presented as packages, qualified scopes
# will look different, etc.
OPTIMIZE_OUTPUT_JAVA = NO
# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to
# include (a tag file for) the STL sources as input, then you should
# set this tag to YES in order to let doxygen match functions declarations and
# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
# func(std::string) {}). This also make the inheritance and collaboration
# diagrams that involve STL classes more complete and accurate.
BUILTIN_STL_SUPPORT = NO
# If you use Microsoft's C++/CLI language, you should set this option to YES to
# enable parsing support.
CPP_CLI_SUPPORT = NO
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
# tag is set to YES, then doxygen will reuse the documentation of the first
# member in the group (if any) for the other members of the group. By default
# all members of a group must be documented explicitly.
DISTRIBUTE_GROUP_DOC = NO
# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
# the same type (for instance a group of public functions) to be put as a
# subgroup of that type (e.g. under the Public Functions section). Set it to
# NO to prevent subgrouping. Alternatively, this can be done per class using
# the \nosubgrouping command.
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
# documentation are documented, even if no documentation was available.
# Private class members and static file members will be hidden unless
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
EXTRACT_ALL = NO
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
# will be included in the documentation.
EXTRACT_PRIVATE = NO
# If the EXTRACT_STATIC tag is set to YES all static members of a file
# will be included in the documentation.
EXTRACT_STATIC = NO
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
# defined locally in source files will be included in the documentation.
# If set to NO only classes defined in header files are included.
EXTRACT_LOCAL_CLASSES = YES
# This flag is only useful for Objective-C code. When set to YES local
# methods, which are defined in the implementation section but not in
# the interface are included in the documentation.
# If set to NO (the default) only methods in the interface are included.
EXTRACT_LOCAL_METHODS = YES
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
# undocumented members of documented classes, files or namespaces.
# If set to NO (the default) these members will be included in the
# various overviews, but no documentation section is generated.
# This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_MEMBERS = YES
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
# undocumented classes that are normally visible in the class hierarchy.
# If set to NO (the default) these classes will be included in the various
# overviews. This option has no effect if EXTRACT_ALL is enabled.
HIDE_UNDOC_CLASSES = YES
# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
# friend (class|struct|union) declarations.
# If set to NO (the default) these declarations will be included in the
# documentation.
HIDE_FRIEND_COMPOUNDS = NO
# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
# documentation blocks found inside the body of a function.
# If set to NO (the default) these blocks will be appended to the
# function's detailed documentation block.
HIDE_IN_BODY_DOCS = NO
# The INTERNAL_DOCS tag determines if documentation
# that is typed after a \internal command is included. If the tag is set
# to NO (the default) then the documentation will be excluded.
# Set it to YES to include the internal documentation.
INTERNAL_DOCS = NO
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
# file names in lower-case letters. If set to YES upper-case letters are also
# allowed. This is useful if you have classes or files whose names only differ
# in case and if your file system supports case sensitive file names. Windows
# and Mac users are advised to set this option to NO.
CASE_SENSE_NAMES = NO
# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
# will show members with their full class and namespace scopes in the
# documentation. If set to YES the scope will be hidden.
HIDE_SCOPE_NAMES = NO
# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
# will put a list of the files that are included by a file in the documentation
# of that file.
SHOW_INCLUDE_FILES = NO
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
# is inserted in the documentation for inline members.
INLINE_INFO = YES
# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
# will sort the (detailed) documentation of file and class members
# alphabetically by member name. If set to NO the members will appear in
# declaration order.
SORT_MEMBER_DOCS = YES
# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
# brief documentation of file, namespace and class members alphabetically
# by member name. If set to NO (the default) the members will appear in
# declaration order.
SORT_BRIEF_DOCS = NO
# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
# sorted by fully-qualified names, including namespaces. If set to
# NO (the default), the class list will be sorted only by class name,
# not including the namespace part.
# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
# Note: This option applies only to the class list, not to the
# alphabetical list.
SORT_BY_SCOPE_NAME = NO
# The GENERATE_TODOLIST tag can be used to enable (YES) or
# disable (NO) the todo list. This list is created by putting \todo
# commands in the documentation.
GENERATE_TODOLIST = YES
# The GENERATE_TESTLIST tag can be used to enable (YES) or
# disable (NO) the test list. This list is created by putting \test
# commands in the documentation.
GENERATE_TESTLIST = YES
# The GENERATE_BUGLIST tag can be used to enable (YES) or
# disable (NO) the bug list. This list is created by putting \bug
# commands in the documentation.
GENERATE_BUGLIST = YES
# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
# disable (NO) the deprecated list. This list is created by putting
# \deprecated commands in the documentation.
GENERATE_DEPRECATEDLIST= YES
# The ENABLED_SECTIONS tag can be used to enable conditional
# documentation sections, marked by \if sectionname ... \endif.
ENABLED_SECTIONS =
# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
# the initial value of a variable or define consists of for it to appear in
# the documentation. If the initializer consists of more lines than specified
# here it will be hidden. Use a value of 0 to hide initializers completely.
# The appearance of the initializer of individual variables and defines in the
# documentation can be controlled using \showinitializer or \hideinitializer
# command in the documentation regardless of this setting.
MAX_INITIALIZER_LINES = 30
# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
# at the bottom of the documentation of classes and structs. If set to YES the
# list will mention the files that were used to generate the documentation.
SHOW_USED_FILES = YES
# If the sources in your project are distributed over multiple directories
# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
# in the documentation. The default is NO.
SHOW_DIRECTORIES = YES
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
# doxygen should invoke to get the current version for each file (typically from the
# version control system). Doxygen will invoke the program by executing (via
# popen()) the command <command> <input-file>, where <command> is the value of
# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
# provided by doxygen. Whatever the program writes to standard output
# is used as the file version. See the manual for examples.
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
# The QUIET tag can be used to turn on/off the messages that are generated
# by doxygen. Possible values are YES and NO. If left blank NO is used.
QUIET = YES
# The WARNINGS tag can be used to turn on/off the warning messages that are
# generated by doxygen. Possible values are YES and NO. If left blank
# NO is used.
WARNINGS = YES
# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
# automatically be disabled.
WARN_IF_UNDOCUMENTED = NO
# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
# potential errors in the documentation, such as not documenting some
# parameters in a documented function, or documenting parameters that
# don't exist or using markup commands wrongly.
WARN_IF_DOC_ERROR = YES
# This WARN_NO_PARAMDOC option can be abled to get warnings for
# functions that are documented, but have no documentation for their parameters
# or return value. If set to NO (the default) doxygen will only warn about
# wrong or incomplete parameter documentation, but not about the absence of
# documentation.
WARN_NO_PARAMDOC = NO
# The WARN_FORMAT tag determines the format of the warning messages that
# doxygen can produce. The string should contain the $file, $line, and $text
# tags, which will be replaced by the file and line number from which the
# warning originated and the warning text. Optionally the format may contain
# $version, which will be replaced by the version of the file (if it could
# be obtained via FILE_VERSION_FILTER)
WARN_FORMAT = "$file:$line: $text"
# The WARN_LOGFILE tag can be used to specify a file to which warning
# and error messages should be written. If left blank the output is written
# to stderr.
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
# The INPUT tag can be used to specify the files and/or directories that contain
# documented source files. You may enter file names like "myfile.cpp" or
# directories like "/usr/src/myproject". Separate the files or directories
# with spaces.
INPUT = @top_srcdir@/src
# This tag can be used to specify the character encoding of the source files that
# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default
# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding.
# See http://www.gnu.org/software/libiconv for the list of possible encodings.
INPUT_ENCODING = UTF-8
# If the value of the INPUT tag contains directories, you can use the
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank the following patterns are tested:
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx
# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
FILE_PATTERNS =
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
# should be searched for input files as well. Possible values are YES and NO.
# If left blank NO is used.
RECURSIVE = YES
# The EXCLUDE tag can be used to specify files and/or directories that should
# excluded from the INPUT source files. This way you can easily exclude a
# subdirectory from a directory tree whose root is specified with the INPUT tag.
EXCLUDE =
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
# directories that are symbolic links (a Unix filesystem feature) are excluded
# from the input.
EXCLUDE_SYMLINKS = YES
# If the value of the INPUT tag contains directories, you can use the
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
# certain files from those directories. Note that the wildcards are matched
# against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/*
EXCLUDE_PATTERNS =
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the output.
# The symbol name can be a fully qualified name, a word, or if the wildcard * is used,
# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test
EXCLUDE_SYMBOLS =
# The EXAMPLE_PATH tag can be used to specify one or more files or
# directories that contain example code fragments that are included (see
# the \include command).
EXAMPLE_PATH =
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
# and *.h) to filter out the source-files in the directories. If left
# blank all files are included.
EXAMPLE_PATTERNS =
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
# searched for input files to be used with the \include or \dontinclude
# commands irrespective of the value of the RECURSIVE tag.
# Possible values are YES and NO. If left blank NO is used.
EXAMPLE_RECURSIVE = NO
# The IMAGE_PATH tag can be used to specify one or more files or
# directories that contain image that are included in the documentation (see
# the \image command).
IMAGE_PATH =
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
# by executing (via popen()) the command <filter> <input-file>, where <filter>
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
# input file. Doxygen will then use the output that the filter program writes
# to standard output. If FILTER_PATTERNS is specified, this tag will be
# ignored.
INPUT_FILTER =
# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
# basis. Doxygen will compare the file name with each pattern and apply the
# filter if there is a match. The filters are a list of the form:
# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER
# is applied to all files.
FILTER_PATTERNS =
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
# INPUT_FILTER) will be used to filter the input files when producing source
# files to browse (i.e. when SOURCE_BROWSER is set to YES).
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
# If the SOURCE_BROWSER tag is set to YES then a list of source files will
# be generated. Documented entities will be cross-referenced with these sources.
# Note: To get rid of all source code in the generated output, make sure also
# VERBATIM_HEADERS is set to NO.
SOURCE_BROWSER = NO
# Setting the INLINE_SOURCES tag to YES will include the body
# of functions and classes directly in the documentation.
INLINE_SOURCES = NO
# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
# doxygen to hide any special comment blocks from generated source code
# fragments. Normal C and C++ comments will always remain visible.
STRIP_CODE_COMMENTS = YES
# If the REFERENCED_BY_RELATION tag is set to YES (the default)
# then for each documented function all documented
# functions referencing it will be listed.
REFERENCED_BY_RELATION = YES
# If the REFERENCES_RELATION tag is set to YES (the default)
# then for each documented function all documented entities
# called/used by that function will be listed.
REFERENCES_RELATION = YES
# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
# link to the source code. Otherwise they will link to the documentstion.
REFERENCES_LINK_SOURCE = YES
# If the USE_HTAGS tag is set to YES then the references to source code
# will point to the HTML generated by the htags(1) tool instead of doxygen
# built-in source browser. The htags tool is part of GNU's global source
# tagging system (see http://www.gnu.org/software/global/global.html). You
# will need version 4.8.6 or higher.
USE_HTAGS = NO
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
# will generate a verbatim copy of the header file for each class for
# which an include is specified. Set to NO to disable this.
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
# of all compounds will be generated. Enable this if the project
# contains a lot of classes, structs, unions or interfaces.
ALPHABETICAL_INDEX = YES
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
# in which this list will be split (can be a number in the range [1..20])
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all
# classes will be put under the same header in the alphabetical index.
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
# should be ignored while generating the index headers.
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
# generate HTML output.
GENERATE_HTML = YES
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `html' will be used as the default path.
HTML_OUTPUT = html
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
# doxygen will generate files with .html extension.
HTML_FILE_EXTENSION = .html
# The HTML_HEADER tag can be used to specify a personal HTML header for
# each generated HTML page. If it is left blank doxygen will generate a
# standard header.
HTML_HEADER =
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
# each generated HTML page. If it is left blank doxygen will generate a
# standard footer.
HTML_FOOTER =
# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
# style sheet that is used by each HTML page. It can be used to
# fine-tune the look of the HTML output. If the tag is left blank doxygen
# will generate a default style sheet. Note that doxygen will try to copy
# the style sheet file to the HTML output directory, so don't put your own
# stylesheet in the HTML output directory as well, or it will be erased!
HTML_STYLESHEET =
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
# files or namespaces will be aligned in HTML using tables. If set to
# NO a bullet list will be used.
HTML_ALIGN_MEMBERS = YES
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
# will be generated that can be used as input for tools like the
# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
# of the generated HTML documentation.
GENERATE_HTMLHELP = NO
# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
# be used to specify the file name of the resulting .chm file. You
# can add a path in front of the file if the result should not be
# written to the html output directory.
CHM_FILE =
# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
# be used to specify the location (absolute path including file name) of
# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
# the HTML help compiler on the generated index.hhp.
HHC_LOCATION =
# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
# controls if a separate .chi index file is generated (YES) or that
# it should be included in the master .chm file (NO).
GENERATE_CHI = NO
# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
# controls whether a binary table of contents is generated (YES) or a
# normal table of contents (NO) in the .chm file.
BINARY_TOC = NO
# The TOC_EXPAND flag can be set to YES to add extra items for group members
# to the contents of the HTML help documentation and to the tree view.
TOC_EXPAND = NO
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
# top of each HTML page. The value NO (the default) enables the index and
# the value YES disables it.
DISABLE_INDEX = NO
# This tag can be used to set the number of enum values (range [1..20])
# that doxygen will group on one line in the generated HTML documentation.
ENUM_VALUES_PER_LINE = 4
# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
# generated containing a tree-like index structure (just like the one that
# is generated for HTML Help). For this to work a browser that supports
# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+,
# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are
# probably better off using the HTML help feature.
GENERATE_TREEVIEW = NO
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
# used to set the initial width (in pixels) of the frame in which the tree
# is shown.
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
# generate Latex output.
GENERATE_LATEX = YES
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
# put in front of it. If left blank `latex' will be used as the default path.
LATEX_OUTPUT = latex
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
# invoked. If left blank `latex' will be used as the default command name.
LATEX_CMD_NAME = latex
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
# generate index for LaTeX. If left blank `makeindex' will be used as the
# default command name.
MAKEINDEX_CMD_NAME = makeindex
# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
# LaTeX documents. This may be useful for small projects and may help to
# save some trees in general.
COMPACT_LATEX = NO
# The PAPER_TYPE tag can be used to set the paper type that is used
# by the printer. Possible values are: a4, a4wide, letter, legal and
# executive. If left blank a4wide will be used.
PAPER_TYPE = a4wide
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
# packages that should be included in the LaTeX output.
EXTRA_PACKAGES =
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
# the generated latex document. The header should
gitextract_0wwnmpk9/ ├── .gitignore ├── AuthLDAP.xcodeproj/ │ ├── project.pbxproj │ └── project.xcworkspace/ │ └── contents.xcworkspacedata ├── LICENSE ├── Makefile.in ├── Mk/ │ ├── autoconf.mk.in │ ├── compile.mk.in │ └── subdir.mk.in ├── README.md ├── aclocal.m4 ├── auth-ldap.conf ├── config.guess ├── config.sub ├── configure.ac ├── docs/ │ ├── Makefile.in │ ├── doxyfile.in │ ├── resources/ │ │ └── docbook.css │ └── xml/ │ └── auth-ldap.xml ├── framework.m4 ├── install-sh ├── mkinstalldirs ├── platform.m4 ├── pthread.m4 ├── regen.sh ├── src/ │ ├── Makefile.in │ ├── PXObjCRuntime.h │ ├── TRAccountRepository.h │ ├── TRArray.h │ ├── TRArray.m │ ├── TRAuthLDAPConfig.h │ ├── TRAuthLDAPConfig.m │ ├── TRAutoreleasePool.h │ ├── TRAutoreleasePool.m │ ├── TRConfig.h │ ├── TRConfig.m │ ├── TRConfigLexer.h │ ├── TRConfigLexer.re │ ├── TRConfigParser.lemon │ ├── TRConfigToken.h │ ├── TRConfigToken.m │ ├── TREnumerator.h │ ├── TREnumerator.m │ ├── TRHash.h │ ├── TRHash.m │ ├── TRLDAPAccountRepository.h │ ├── TRLDAPAccountRepository.m │ ├── TRLDAPConnection.h │ ├── TRLDAPConnection.m │ ├── TRLDAPEntry.h │ ├── TRLDAPEntry.m │ ├── TRLDAPGroupConfig.h │ ├── TRLDAPGroupConfig.m │ ├── TRLDAPSearchFilter.h │ ├── TRLDAPSearchFilter.m │ ├── TRLocalPacketFilter.h │ ├── TRLocalPacketFilter.m │ ├── TRLog.h │ ├── TRLog.m │ ├── TRObject.h │ ├── TRObject.m │ ├── TRPFAddress.h │ ├── TRPFAddress.m │ ├── TRPacketFilter.h │ ├── TRPacketFilter.m │ ├── TRString.h │ ├── TRString.m │ ├── TRVPNPlugin.h │ ├── TRVPNSession.h │ ├── TRVPNSession.m │ ├── asprintf.c │ ├── auth-ldap.m │ ├── base64.c │ ├── base64.h │ ├── hash.c │ ├── hash.h │ ├── openvpn-cr.c │ ├── openvpn-cr.h │ ├── strlcpy.c │ ├── strlcpy.h │ ├── testplugin.c │ ├── xmalloc.c │ └── xmalloc.h ├── tests/ │ ├── Makefile.in │ ├── PXTestAssert.h │ ├── PXTestAssert.m │ ├── PXTestCase.h │ ├── PXTestCase.m │ ├── PXTestCaseRunner.h │ ├── PXTestCaseRunner.m │ ├── PXTestConsoleResultHandler.h │ ├── PXTestConsoleResultHandler.m │ ├── PXTestException.h │ ├── PXTestException.m │ ├── PXTestObjC.h │ ├── PXTestResultHandler.h │ ├── TRArrayTests.m │ ├── TRAuthLDAPConfigTests.m │ ├── TRAutoreleasePoolTests.m │ ├── TRConfigLexerTests.m │ ├── TRConfigTests.m │ ├── TRConfigTokenTests.m │ ├── TRHashTests.m │ ├── TRLDAPAccountRepositoryTests.m │ ├── TRLDAPConnectionTests.m │ ├── TRLDAPEntryTests.m │ ├── TRLDAPGroupConfigTests.m │ ├── TRLDAPSearchFilterTests.m │ ├── TRLocalPacketFilterTests.m │ ├── TRObjectTests.m │ ├── TRPFAddressTests.m │ ├── TRStringTests.m │ ├── TRVPNSessionTests.m │ ├── data/ │ │ ├── TRConfig.conf │ │ ├── auth-ldap-bad-section.conf │ │ ├── auth-ldap-mismatched.conf │ │ ├── auth-ldap-missing-newline.conf │ │ ├── auth-ldap-multikey.conf │ │ ├── auth-ldap-named.conf │ │ ├── auth-ldap-pf.conf │ │ ├── auth-ldap-required.conf │ │ ├── auth-ldap.conf │ │ └── test-lineNumbers.conf │ ├── mockpf.c │ ├── mockpf.h │ ├── tests.h │ └── tests.m ├── tools/ │ ├── Makefile.in │ ├── README │ ├── lemon.c │ ├── lempar.c │ └── makeheaders.c ├── ubuntu_16.04_lts_build.sh └── ubuntu_16.04_lts_package.sh
SYMBOL INDEX (417 symbols across 32 files)
FILE: src/PXObjCRuntime.h
type PXInteger (line 43) | typedef long PXInteger;
type PXInteger (line 45) | typedef int PXInteger;
type PXUInteger (line 50) | typedef unsigned long PXUInteger;
type PXUInteger (line 52) | typedef unsigned int PXUInteger;
FILE: src/TRArray.h
function interface (line 38) | interface TRArray : TRObject {
FILE: src/TRAuthLDAPConfig.h
function interface (line 41) | interface TRAuthLDAPConfig : TRObject <TRConfigDelegate> {
FILE: src/TRAutoreleasePool.h
type TRAutoreleasePoolBucket (line 31) | typedef struct _TRAutoreleasePoolBucket TRAutoreleasePoolBucket;
function interface (line 33) | interface TRAutoreleasePool : TRObject
FILE: src/TRConfigLexer.h
type LexerStartCondition (line 40) | typedef enum {
function interface (line 48) | interface TRConfigLexer : TRObject {
FILE: src/TRConfigToken.h
type TRConfigDataType (line 52) | typedef enum {
function interface (line 58) | interface TRConfigToken : TRObject {
FILE: src/TRHash.h
function interface (line 41) | interface TRHash : TRObject {
FILE: src/TRLDAPAccountRepository.h
function interface (line 44) | interface TRLDAPAccountRepository : TRObject <TRAccountRepository> {
FILE: src/TRLDAPConnection.h
function interface (line 42) | interface TRLDAPConnection : TRObject {
FILE: src/TRLDAPEntry.h
function interface (line 39) | interface TRLDAPEntry : TRObject {
FILE: src/TRLDAPGroupConfig.h
function interface (line 38) | interface TRLDAPGroupConfig : TRObject {
FILE: src/TRLDAPSearchFilter.h
function interface (line 38) | interface TRLDAPSearchFilter : TRObject {
FILE: src/TRLocalPacketFilter.h
function interface (line 54) | interface TRLocalPacketFilter : TRObject <TRPacketFilter> {
FILE: src/TRLog.h
type loglevel_t (line 37) | typedef enum {
FILE: src/TRPFAddress.h
type TRPortableAddress (line 48) | typedef struct {
function interface (line 57) | interface TRPFAddress : TRObject {
FILE: src/TRPacketFilter.h
type pferror_t (line 40) | typedef enum {
FILE: src/TRString.h
function interface (line 41) | interface TRString : TRObject {
FILE: src/TRVPNSession.h
function interface (line 38) | interface TRVPNSession: TRObject {
FILE: src/base64.c
function Base64decode_len (line 111) | int Base64decode_len(const char *bufcoded)
function Base64decode (line 126) | int Base64decode(char *bufplain, const char *bufcoded)
function Base64encode_len (line 174) | int Base64encode_len(int len)
function Base64encode (line 179) | int Base64encode(char *encoded, const char *string, int len)
FILE: src/hash.c
function compute_bits (line 78) | static void compute_bits(void)
function is_power_of_two (line 95) | static int is_power_of_two(hash_val_t arg)
function hash_val_t (line 108) | static hash_val_t compute_mask(hashcount_t size)
function clear_table (line 120) | static void clear_table(hash_t *hash)
function grow_table (line 156) | static void grow_table(hash_t *hash)
function shrink_table (line 230) | static void shrink_table(hash_t *hash)
function hash_t (line 291) | hash_t *hash_create(hashcount_t maxcount, hash_comp_t compfun,
function hash_set_allocator (line 330) | void hash_set_allocator(hash_t *hash, hnode_alloc_t al,
function hash_free_nodes (line 346) | void hash_free_nodes(hash_t *hash)
function hash_free (line 364) | void hash_free(hash_t *hash)
function hash_destroy (line 377) | void hash_destroy(hash_t *hash)
function hash_t (line 398) | hash_t *hash_init(hash_t *hash, hashcount_t maxcount,
function hash_scan_begin (line 433) | void hash_scan_begin(hscan_t *scan, hash_t *hash)
function hnode_t (line 479) | hnode_t *hash_scan_next(hscan_t *scan)
function hash_insert (line 518) | void hash_insert(hash_t *hash, hnode_t *node, const void *key)
function hnode_t (line 556) | hnode_t *hash_lookup(hash_t *hash, const void *key)
function hnode_t (line 590) | hnode_t *tr_hash_delete(hash_t *hash, hnode_t *node)
function hash_alloc_insert (line 623) | int hash_alloc_insert(hash_t *hash, const void *key, void *data)
function hash_delete_free (line 635) | void hash_delete_free(hash_t *hash, hnode_t *node)
function hnode_t (line 646) | hnode_t *hash_scan_delete(hash_t *hash, hnode_t *node)
function hash_scan_delfree (line 676) | void hash_scan_delfree(hash_t *hash, hnode_t *node)
function hash_verify (line 691) | int hash_verify(hash_t *hash)
function hash_isfull (line 726) | int hash_isfull(hash_t *hash)
function hash_isempty (line 737) | int hash_isempty(hash_t *hash)
function hnode_t (line 742) | static hnode_t *hnode_alloc(void *context)
function hnode_free (line 747) | static void hnode_free(hnode_t *node, void *context)
function hnode_t (line 757) | hnode_t *hnode_create(void *data)
function hnode_t (line 771) | hnode_t *hnode_init(hnode_t *hnode, void *data)
function hnode_destroy (line 782) | void hnode_destroy(hnode_t *hnode)
function hnode_put (line 788) | void hnode_put(hnode_t *node, void *data)
function hashcount_t (line 806) | hashcount_t hash_count(hash_t *hash)
function hashcount_t (line 812) | hashcount_t hash_size(hash_t *hash)
function hash_val_t (line 817) | static hash_val_t hash_fun_default(const void *key)
function hash_comp_default (line 840) | static int hash_comp_default(const void *key1, const void *key2)
function tokenize (line 853) | static int tokenize(char *string, ...)
function hnode_t (line 889) | static hnode_t *new_node(void *c)
function del_node (line 900) | static void del_node(hnode_t *n, void *c)
function main (line 904) | int main(void)
FILE: src/hash.h
type hashcount_t (line 37) | typedef unsigned long hashcount_t;
type hash_val_t (line 40) | typedef unsigned long hash_val_t;
type hnode_t (line 67) | typedef struct hnode_t {
type hash_val_t (line 99) | typedef hash_val_t (*hash_fun_t)(const void *);
type hnode_t (line 105) | typedef hnode_t *(*hnode_alloc_t)(void *);
type hash_t (line 143) | typedef struct hash_t {
type hscan_t (line 173) | typedef struct hscan_t {
FILE: src/openvpn-cr.c
function set_token_b64 (line 9) | int set_token_b64(const char * source, char * destination)
function set_token (line 17) | int set_token(const char * source, char * destination)
function extract_openvpn_cr (line 26) | int extract_openvpn_cr(const char *response, openvpn_response *result, c...
FILE: src/openvpn-cr.h
type openvpn_response (line 6) | typedef struct
FILE: src/strlcpy.c
function strlcpy (line 44) | size_t strlcpy(dst, src, siz)
FILE: src/testplugin.c
type plugin_data (line 48) | typedef struct {
function plugin_data (line 70) | static plugin_data *plugin_data_init (const char *config_file) {
function plugin_data_free (line 122) | static void plugin_data_free (plugin_data *data) {
function main (line 141) | int main(int argc, const char *argv[]) {
FILE: tests/PXTestCaseRunner.h
function interface (line 35) | interface PXTestCaseRunner : TRObject {
FILE: tests/PXTestConsoleResultHandler.h
function interface (line 32) | interface PXTestConsoleResultHandler : TRObject <PXTestResultHandler> {
FILE: tests/PXTestException.h
function interface (line 53) | interface PXTestException : TRObject {
FILE: tests/mockpf.c
type pfr_table (line 92) | struct pfr_table
type pfr_table (line 99) | struct pfr_table
type PFNode (line 107) | typedef struct PFNode {
type PFList (line 113) | typedef struct PFList {
type PFAddressNode (line 119) | typedef struct PFAddressNode {
type PFTableNode (line 126) | typedef struct PFTableNode {
function init_pflist (line 136) | static void init_pflist(PFList *list) {
function init_pfnode (line 142) | static void init_pfnode(PFNode *node) {
function insert_pfnode (line 148) | static void insert_pfnode(PFList *list, PFNode *new, PFNode *position) {
function remove_pfnode (line 173) | static void remove_pfnode(PFList *list, PFNode *node) {
function mockpf_setup (line 195) | void mockpf_setup(void) {
function mockpf_teardown (line 216) | void mockpf_teardown(void) {
function open (line 230) | int open(const char *path, int flags, ...) {
function close (line 264) | int close(int d) {
function pfr_fix_anchor (line 294) | int pfr_fix_anchor(char *anchor) {
function pfr_validate_table (line 322) | int pfr_validate_table(struct pfr_table *tbl) {
function pfr_validate_addr (line 342) | int pfr_validate_addr(struct pfr_addr *ad) {
function ioctl (line 372) | int ioctl(int d, unsigned long request, ...) {
FILE: tools/lemon.c
type rule (line 54) | struct rule
type lemon (line 55) | struct lemon
type action (line 56) | struct action
type action (line 58) | struct action
type action (line 59) | struct action
type action (line 59) | struct action
type config (line 71) | struct config
type rule (line 71) | struct rule
type config (line 72) | struct config
type rule (line 72) | struct rule
type lemon (line 73) | struct lemon
type config (line 76) | struct config
type config (line 77) | struct config
type config (line 78) | struct config
type option_type (line 85) | enum option_type { OPT_FLAG=1, OPT_INT, OPT_DBL, OPT_STR,
type s_options (line 87) | struct s_options {
type s_options (line 93) | struct s_options
type lemon (line 100) | struct lemon
type plink (line 103) | struct plink
type plink (line 104) | struct plink
type config (line 104) | struct config
type plink (line 105) | struct plink
type plink (line 105) | struct plink
type plink (line 106) | struct plink
type lemon (line 109) | struct lemon
type lemon (line 110) | struct lemon
type lemon (line 111) | struct lemon
type lemon (line 112) | struct lemon
type lemon (line 113) | struct lemon
type lemon (line 114) | struct lemon
type Boolean (line 129) | typedef enum {LEMON_FALSE=0, LEMON_TRUE} Boolean;
type symbol_type (line 133) | enum symbol_type {
type e_assoc (line 138) | enum e_assoc {
type symbol (line 144) | struct symbol {
type rule (line 170) | struct rule {
type cfgstatus (line 192) | enum cfgstatus {
type config (line 196) | struct config {
type e_action (line 208) | enum e_action {
type action (line 222) | struct action {
type state (line 235) | struct state {
type plink (line 249) | struct plink {
type lemon (line 258) | struct lemon {
type symbol (line 321) | struct symbol
type symbol (line 324) | struct symbol
type symbol (line 325) | struct symbol
type symbol (line 326) | struct symbol
type symbol (line 328) | struct symbol
type state (line 333) | struct state
type state (line 335) | struct state
type config (line 335) | struct config
type state (line 336) | struct state
type config (line 336) | struct config
type state (line 337) | struct state
type config (line 342) | struct config
type config (line 343) | struct config
type config (line 343) | struct config
type config (line 344) | struct config
type action (line 352) | struct action
type action (line 353) | struct action
type action (line 354) | struct action
type action (line 359) | struct action
type action (line 359) | struct action
function actioncmp (line 376) | static int actioncmp(
type action (line 395) | struct action
type action (line 396) | struct action
type action (line 398) | struct action
function Action_add (line 403) | void Action_add(
type lookahead_action (line 446) | struct lookahead_action {
type acttab (line 450) | typedef struct acttab acttab;
type acttab (line 451) | struct acttab {
function acttab_free (line 474) | void acttab_free(acttab *p){
function acttab (line 481) | acttab *acttab_alloc(void){
function acttab_action (line 496) | void acttab_action(acttab *p, int lookahead, int action){
function acttab_insert (line 529) | int acttab_insert(acttab *p){
function FindRulePrecedences (line 639) | void FindRulePrecedences(struct lemon *xp)
function FindFirstSets (line 668) | void FindFirstSets(struct lemon *lemp)
type lemon (line 730) | struct lemon
function FindStates (line 731) | void FindStates(struct lemon *lemp)
type lemon (line 789) | struct lemon
type state (line 789) | struct state
function state (line 790) | state *getstate(struct lemon *lemp)
function same_symbol (line 834) | int same_symbol(struct symbol *a, struct symbol *b)
function PRIVATE (line 850) | PRIVATE void buildshifts(struct lemon *lemp, struct state *stp)
function FindLinks (line 903) | void FindLinks(struct lemon *lemp)
function FindFollowSets (line 938) | void FindFollowSets(struct lemon *lemp)
type action (line 970) | struct action
type action (line 970) | struct action
function FindActions (line 974) | void FindActions(struct lemon *lemp)
function resolve_conflict (line 1057) | static int resolve_conflict(
type config (line 1125) | struct config
type config (line 1126) | struct config
type config (line 1127) | struct config
type config (line 1128) | struct config
type config (line 1129) | struct config
function config (line 1132) | config *newconfig(){
function PRIVATE (line 1151) | PRIVATE void deleteconfig(struct config *old)
function Configlist_init (line 1158) | void Configlist_init(){
function Configlist_reset (line 1168) | void Configlist_reset(){
type config (line 1178) | struct config
type rule (line 1179) | struct rule
type config (line 1182) | struct config
type config (line 1205) | struct config
type rule (line 1205) | struct rule
type config (line 1207) | struct config
function Configlist_closure (line 1233) | void Configlist_closure(struct lemon *lemp)
function Configlist_sort (line 1278) | void Configlist_sort(){
function Configlist_sortbasis (line 1285) | void Configlist_sortbasis(){
type config (line 1293) | struct config
type config (line 1294) | struct config
type config (line 1303) | struct config
type config (line 1304) | struct config
function Configlist_eat (line 1312) | void Configlist_eat(struct config *cfp)
function ErrorMsg (line 1329) | void ErrorMsg(const char *filename, int lineno, const char *format, ...){
function memory_error (line 1345) | void memory_error(){
function handle_D_option (line 1356) | static void handle_D_option(char *z){
function handle_O_option (line 1376) | static void handle_O_option(char *z){
function handle_T_option (line 1385) | static void handle_T_option(char *z){
function main (line 1394) | int main(int argc, char **argv)
type s_options (line 1655) | struct s_options
function errline (line 1664) | static void errline(int n, int k, FILE *err)
function argindex (line 1686) | static int argindex(int n)
function handleflags (line 1707) | static int handleflags(int i, FILE *err)
function handleswitch (line 1741) | static int handleswitch(int i, FILE *err)
function OptInit (line 1827) | int OptInit(char **a, struct s_options *o, FILE *err)
function OptNArgs (line 1851) | int OptNArgs(){
function OptErr (line 1871) | void OptErr(int n)
function OptPrint (line 1878) | void OptPrint(){
type e_state (line 1933) | enum e_state {
type pstate (line 1955) | struct pstate {
function parseonetoken (line 1980) | static void parseonetoken(struct pstate *psp)
function preprocess_input (line 2450) | static void preprocess_input(char *z){
function Parse (line 2501) | void Parse(struct lemon *gp)
type plink (line 2653) | struct plink
type plink (line 2656) | struct plink
type plink (line 2657) | struct plink
type plink (line 2662) | struct plink
type plink (line 2662) | struct plink
function Plink_add (line 2677) | void Plink_add(struct plink **plpp, struct config *cfp)
function Plink_copy (line 2687) | void Plink_copy(struct plink **to, struct plink *from)
function Plink_delete (line 2699) | void Plink_delete(struct plink *plp)
function PRIVATE (line 2719) | PRIVATE char *file_makename(const char *filename, const char *suffix)
function PRIVATE (line 2739) | PRIVATE FILE *file_open(
function Reprint (line 2759) | void Reprint(struct lemon *lemp)
function ConfigPrint (line 2804) | void ConfigPrint(FILE *fp, struct config *cfp)
function PRIVATE (line 2827) | PRIVATE void SetPrint(out,set,lemp)
function PRIVATE (line 2846) | PRIVATE void PlinkPrint(out,plp,tag)
function PrintAction (line 2863) | int PrintAction(struct action *ap, FILE *fp, int indent){
function ReportOutput (line 2911) | void ReportOutput(struct lemon *lemp)
function PRIVATE (line 2977) | PRIVATE char *pathsearch(char *argv0, char *name, int modemask)
function PRIVATE (line 3025) | PRIVATE int compute_action(struct lemon *lemp, struct action *ap)
function PRIVATE (line 3048) | PRIVATE void tplt_xfer(char *name, FILE *in, FILE *out, int *lineno)
function PRIVATE (line 3073) | PRIVATE FILE *tplt_open(struct lemon *lemp)
function PRIVATE (line 3127) | PRIVATE void tplt_linedir(FILE *out, int lineno, char *filename)
function PRIVATE (line 3139) | PRIVATE void tplt_print(FILE *out, struct lemon *lemp, char *str, int *l...
function emit_destructor_code (line 3161) | void emit_destructor_code(
function has_destructor (line 3204) | int has_destructor(struct symbol *sp, struct lemon *lemp)
function PRIVATE (line 3227) | PRIVATE char *append_str(const char *zText, int n, int p1, int p2){
function PRIVATE (line 3272) | PRIVATE void translate_code(struct lemon *lemp, struct rule *rp){
function PRIVATE (line 3363) | PRIVATE void emit_code(
function print_stack_union (line 3392) | void print_stack_union(
type axset (line 3536) | struct axset {
function axset_compare (line 3546) | static int axset_compare(const void *a, const void *b){
function writeRuleText (line 3561) | static void writeRuleText(FILE *out, struct rule *rp){
function ReportTable (line 3578) | void ReportTable(
function ReportHeader (line 4036) | void ReportHeader(struct lemon *lemp)
function CompressTables (line 4075) | void CompressTables(struct lemon *lemp)
function stateResortCompare (line 4138) | static int stateResortCompare(const void *a, const void *b){
function ResortStates (line 4159) | void ResortStates(struct lemon *lemp)
function SetSize (line 4199) | void SetSize(int n)
function SetFree (line 4216) | void SetFree(char *s)
function SetAdd (line 4223) | int SetAdd(char *s, int e)
function SetUnion (line 4233) | int SetUnion(char *s1, char *s2)
function PRIVATE (line 4259) | PRIVATE int strhash(const char *x)
type s_x1 (line 4289) | struct s_x1 {
type x1node (line 4301) | typedef struct s_x1node {
type s_x1 (line 4308) | struct s_x1
function Strsafe_init (line 4311) | void Strsafe_init(){
function Strsafe_insert (line 4331) | int Strsafe_insert(const char *data)
type symbol (line 4405) | struct symbol
type symbol (line 4407) | struct symbol
type symbol (line 4411) | struct symbol
type symbol (line 4411) | struct symbol
function Symbolcmpp (line 4441) | int Symbolcmpp(const void *_a, const void *_b)
type s_x2 (line 4454) | struct s_x2 {
type x2node (line 4466) | typedef struct s_x2node {
type s_x2 (line 4474) | struct s_x2
function Symbol_init (line 4477) | void Symbol_init(){
function Symbol_insert (line 4497) | int Symbol_insert(struct symbol *data, const char *key)
type symbol (line 4555) | struct symbol
type symbol (line 4571) | struct symbol
type symbol (line 4573) | struct symbol
function Symbol_count (line 4583) | int Symbol_count()
type symbol (line 4591) | struct symbol
type symbol (line 4593) | struct symbol
type symbol (line 4597) | struct symbol
type symbol (line 4597) | struct symbol
function Configcmp (line 4605) | int Configcmp(const char *_a,const char *_b)
function PRIVATE (line 4616) | PRIVATE int statecmp(struct config *a, struct config *b)
function PRIVATE (line 4631) | PRIVATE int statehash(struct config *a)
type state (line 4642) | struct state
type state (line 4644) | struct state
type state (line 4645) | struct state
type state (line 4645) | struct state
type s_x3 (line 4653) | struct s_x3 {
type x3node (line 4665) | typedef struct s_x3node {
type s_x3 (line 4673) | struct s_x3
function State_init (line 4676) | void State_init(){
function State_insert (line 4696) | int State_insert(struct state *data, struct config *key)
type state (line 4754) | struct state
type config (line 4754) | struct config
type state (line 4772) | struct state
type state (line 4774) | struct state
type state (line 4778) | struct state
type state (line 4778) | struct state
function PRIVATE (line 4786) | PRIVATE int confighash(struct config *a)
type s_x4 (line 4796) | struct s_x4 {
type x4node (line 4808) | typedef struct s_x4node {
type s_x4 (line 4815) | struct s_x4
function Configtable_init (line 4818) | void Configtable_init(){
function Configtable_insert (line 4838) | int Configtable_insert(struct config *data)
type config (line 4894) | struct config
type config (line 4894) | struct config
function Configtable_clear (line 4911) | void Configtable_clear(int(*f)(struct config *))
FILE: tools/lempar.c
type yyStackEntry (line 158) | struct yyStackEntry {
type yyStackEntry (line 165) | typedef struct yyStackEntry yyStackEntry;
type yyParser (line 169) | struct yyParser {
type yyParser (line 183) | typedef struct yyParser yyParser;
function ParseTrace (line 209) | void ParseTrace(FILE *TraceFILE, char *zTracePrompt){
function yyGrowStack (line 238) | static void yyGrowStack(yyParser *p){
function yy_destructor (line 291) | static void yy_destructor(
function yy_pop_parser_stack (line 321) | static int yy_pop_parser_stack(yyParser *pParser){
function ParseFree (line 351) | void ParseFree(
function ParseStackPeak (line 368) | int ParseStackPeak(void *p){
function yy_find_shift_action (line 382) | static int yy_find_shift_action(
function yy_find_reduce_action (line 447) | static int yy_find_reduce_action(
function yyStackOverflow (line 477) | static void yyStackOverflow(yyParser *yypParser, YYMINORTYPE *yypMinor){
function yy_shift (line 495) | static void yy_shift(
function yy_reduce (line 554) | static void yy_reduce(
function yy_parse_failed (line 633) | static void yy_parse_failed(
function yy_syntax_error (line 653) | static void yy_syntax_error(
function yy_accept (line 667) | static void yy_accept(
function Parse (line 702) | void Parse(
FILE: tools/makeheaders.c
type Token (line 83) | typedef struct Token Token;
type Token (line 84) | struct Token {
type InStream (line 98) | typedef struct InStream InStream;
type InStream (line 99) | struct InStream {
type Decl (line 120) | typedef struct Decl Decl;
type Decl (line 121) | struct Decl {
type Ifmacro (line 239) | typedef struct Ifmacro Ifmacro;
type Ifmacro (line 240) | struct Ifmacro {
type Include (line 252) | typedef struct Include Include;
type Include (line 253) | struct Include {
type Ident (line 266) | typedef struct Ident Ident;
type Ident (line 267) | struct Ident {
type IdentTable (line 278) | typedef struct IdentTable IdentTable;
type IdentTable (line 279) | struct IdentTable {
type InFile (line 288) | typedef struct InFile InFile;
type InFile (line 289) | struct InFile {
type String (line 302) | typedef struct String String;
type String (line 303) | struct String {
type GenState (line 316) | typedef struct GenState GenState;
type GenState (line 317) | struct GenState {
function CantHappen (line 399) | static void CantHappen(int iLine){
function SafeFree (line 416) | static void SafeFree(void *pOld){
function StringInit (line 454) | static void StringInit(String *pStr){
function StringReset (line 459) | static void StringReset(String *pStr){
function StringAppend (line 463) | static void StringAppend(String *pStr, const char *zText, int nByte){
function Hash (line 486) | static int Hash(const char *z, int n){
function Decl (line 502) | static Decl *FindDecl(const char *zName, int len){
function InstallDecl (line 521) | static void InstallDecl(Decl *pDecl){
function Decl (line 587) | static Decl *CreateDecl(
function IdentTableInsert (line 609) | static int IdentTableInsert(
function IdentTableTest (line 642) | static int IdentTableTest(
function IdentTableReset (line 666) | static void IdentTableReset(IdentTable *pTable){
function IdentTablePrint (line 680) | static void IdentTablePrint(IdentTable *pTable, FILE *pOut){
type stat (line 698) | struct stat
function WriteFile (line 725) | static int WriteFile(const char *zFilename, const char *zOutput){
function GetToken (line 768) | static int GetToken(InStream *pIn, Token *pToken){
function GetNonspaceToken (line 1002) | static int GetNonspaceToken(InStream *pIn, Token *pToken){
function FindIdentifiersInMacro (line 1070) | static void FindIdentifiersInMacro(Token *pToken, IdentTable *pTable){
function GetBigToken (line 1106) | static int GetBigToken(InStream *pIn, Token *pToken, IdentTable *pTable){
function FreeTokenList (line 1189) | static void FreeTokenList(Token *pList){
function Token (line 1207) | static Token *TokenizeFile(const char *zFile, IdentTable *pTable){
function main (line 1246) | void main(int argc, char **argv){
function PrintTokens (line 1311) | static void PrintTokens(Token *pFirst, Token *pLast){
function ProcessTypeDecl (line 1449) | static int ProcessTypeDecl(Token *pList, int flags, int *pReset){
function Token (line 1633) | static Token *FindDeclName(Token *pFirst, Token *pLast){
function ProcessMethodDef (line 1681) | static int ProcessMethodDef(Token *pFirst, Token *pLast, int flags){
function ProcessProcedureDef (line 1746) | static int ProcessProcedureDef(Token *pFirst, Token *pLast, int flags){
function ProcessInlineProc (line 1824) | static int ProcessInlineProc(Token *pFirst, int flags, int *pReset){
function isVariableDef (line 1888) | static int isVariableDef(Token *pFirst, Token *pEnd){
function ProcessDecl (line 1909) | static int ProcessDecl(Token *pFirst, Token *pEnd, int flags){
function PushIfMacro (line 2023) | static void PushIfMacro(
function ParsePreprocessor (line 2074) | static int ParsePreprocessor(Token *pToken, int flags, int *pPresetFlags){
function ParseFile (line 2251) | static int ParseFile(Token *pList, int initFlags){
function InsertExtraDecl (line 2450) | static void InsertExtraDecl(Decl *pDecl){
function ResetDeclFlags (line 2473) | static void ResetDeclFlags(char *zFilename){
function ChangeIfContext (line 2496) | static void ChangeIfContext(
function AddIncludes (line 2527) | static void AddIncludes(
function DeclareObject (line 2561) | static void DeclareObject(
function ScanText (line 2701) | static void ScanText(
function CompleteForwardDeclarations (line 2762) | static void CompleteForwardDeclarations(GenState *pState){
function MakeHeader (line 2787) | static int MakeHeader(InFile *pFile, FILE *report, int nolocal_flag){
function MakeGlobalHeader (line 2852) | static int MakeGlobalHeader(int forExport){
function ClipTrailingNewline (line 2885) | static int ClipTrailingNewline(char *z){
function DumpDeclList (line 2894) | static void DumpDeclList(void){
function DocumentationDump (line 2951) | static void DocumentationDump(void){
function PrintModuleRecord (line 3016) | void PrintModuleRecord(const char *zFile, const char *zFilename){
function InFile (line 3033) | static InFile *CreateInFile(char *zArg, int *pnErr){
function AddParameters (line 3133) | static void AddParameters(int index, int *pArgc, char ***pArgv){
function ModTime (line 3213) | static unsigned int ModTime(const char *zFilename){
function Usage (line 3226) | static void Usage(const char *argv0, const char *argvN){
function main (line 3265) | int main(int argc, char **argv){
Condensed preview — 133 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,036K chars).
[
{
"path": ".gitignore",
"chars": 276,
"preview": "Makefile\nMk/autoconf.mk\nMk/compile.mk\nMk/subdir.mk\nautom4te.cache/\nconfig.h\nconfig.h.in\nconfig.log\nconfig.status\nconfigu"
},
{
"path": "AuthLDAP.xcodeproj/project.pbxproj",
"chars": 61509,
"preview": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section *"
},
{
"path": "AuthLDAP.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
"chars": 153,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n version = \"1.0\">\n <FileRef\n location = \"self:AuthLDAP.xcodep"
},
{
"path": "LICENSE",
"chars": 9370,
"preview": "****************\n* INTRODUCTION *\n****************\n\nThe vast majority of this implementation is subject to the standard\n"
},
{
"path": "Makefile.in",
"chars": 294,
"preview": "top_srcdir=\t@top_srcdir@\n\nSUBDIR=\t\ttools \\\n\t\tsrc \\\n\t\ttests \\\n\t\tdocs\n\ninclude Mk/subdir.mk\ninclude Mk/autoconf.mk\n\nall::\n"
},
{
"path": "Mk/autoconf.mk.in",
"chars": 1293,
"preview": "SHELL\t\t\t= @SHELL@\n\nCC\t\t\t= @CC@\n\nCFLAGS\t\t\t= @CFLAGS@ @DEFS@ -Wall\nOBJCFLAGS\t\t= -fPIC @OBJCFLAGS@ ${OBJC_RUNTIME_FLAGS} ${"
},
{
"path": "Mk/compile.mk.in",
"chars": 578,
"preview": ".SUFFIXES: .m .lemon .re\n# Disable GNU make's removal intermediate files, we handle this manually\n.SECONDARY:\n\n.m.o:\n\t${"
},
{
"path": "Mk/subdir.mk.in",
"chars": 1404,
"preview": ".PHONY : all pre-all\n.PHONY : clean distclean\n.PHONY : install\n.PHONY : test\n.PHONY : docs\n\nall:: pre-all\n\t@if test x\"$("
},
{
"path": "README.md",
"chars": 3668,
"preview": "## Description\n\nThe OpenVPN Auth-LDAP Plugin implements username/password authentication via LDAP for OpenVPN 2.x.\n\n### "
},
{
"path": "aclocal.m4",
"chars": 12500,
"preview": "builtin(include,pthread.m4)\nbuiltin(include,platform.m4)\nbuiltin(include,framework.m4)\n\n#-------------------------------"
},
{
"path": "auth-ldap.conf",
"chars": 1716,
"preview": "<LDAP>\n\t# LDAP server URL\n\tURL\t\tldap://ldap1.example.org\n\n\t# Bind DN (If your LDAP server doesn't support anonymous bind"
},
{
"path": "config.guess",
"chars": 39715,
"preview": "#! /bin/sh\n# Attempt to guess a canonical system name.\n# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,"
},
{
"path": "config.sub",
"chars": 29483,
"preview": "#! /bin/sh\n# Configuration validation subroutine script.\n# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 199"
},
{
"path": "configure.ac",
"chars": 1551,
"preview": "AC_PREREQ(2.57)\nAC_INIT(auth-ldap, [2.0], landonf@opendarwin.org)\nAC_CONFIG_SRCDIR(${srcdir}/src/auth-ldap.m)\nAC_CONFIG_"
},
{
"path": "docs/Makefile.in",
"chars": 1051,
"preview": "srcdir= @srcdir@\ntop_srcdir= @top_srcdir@\ntop_builddir= @top_builddir@\nVPATH= @srcdir@\n\ninclude $"
},
{
"path": "docs/doxyfile.in",
"chars": 52074,
"preview": "# Doxyfile 1.5.2\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org) "
},
{
"path": "docs/resources/docbook.css",
"chars": 1676,
"preview": "/*\n * Stylesheet taken from the DarwinPorts Guide.\n * Contributed to the DarwinPorts project by Will Barton and Michael "
},
{
"path": "docs/xml/auth-ldap.xml",
"chars": 1238,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE book PUBLIC \"-//OASIS//DTD DocBook XML V4.5//EN\"\n\t\"http://www.oasis-ope"
},
{
"path": "framework.m4",
"chars": 2257,
"preview": "# From http://svn.saurik.com/repos/cycript/trunk/framework.m4\n#\n# AC_CHECK_FRAMEWORK(FRAMEWORK, FUNCTION,\n# "
},
{
"path": "install-sh",
"chars": 4773,
"preview": "#! /bin/sh\n#\n# install - install a program, script, or datafile\n# This comes from X11R5.\n#\n# Calling this script install"
},
{
"path": "mkinstalldirs",
"chars": 668,
"preview": "#! /bin/sh\n# mkinstalldirs --- make directory hierarchy\n# Author: Noah Friedman <friedman@prep.ai.mit.edu>\n# Created: 19"
},
{
"path": "platform.m4",
"chars": 5338,
"preview": "\n# This software is copyrighted by the Regents of the University of\n# California, Sun Microsystems, Inc., Scriptics Corp"
},
{
"path": "pthread.m4",
"chars": 9295,
"preview": "dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])\ndnl\ndnl Modified from the original version:\ndnl * Re"
},
{
"path": "regen.sh",
"chars": 31,
"preview": "#!/bin/sh\n\nautoconf\nautoheader\n"
},
{
"path": "src/Makefile.in",
"chars": 1806,
"preview": "srcdir= @srcdir@\ntop_srcdir= @top_srcdir@\ntop_builddir= @top_builddir@\nVPATH= @srcdir@\n\ninclude $"
},
{
"path": "src/PXObjCRuntime.h",
"chars": 2085,
"preview": "/*\n * PXObjCRuntime.h vi:ts=4:sw=4:expandtab:\n *\n * Author: Landon Fuller <landonf@bikemonkey.org>\n *\n * Copyright (c) 2"
},
{
"path": "src/TRAccountRepository.h",
"chars": 2328,
"preview": "/*\n * TRAccountRepository.h vi:ts=4:sw=4:expandtab:\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n * Copyright"
},
{
"path": "src/TRArray.h",
"chars": 2130,
"preview": "/*\n * TRArray.h vi:ts=4:sw=4:expandtab:\n * Simple linked list\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n *"
},
{
"path": "src/TRArray.m",
"chars": 6624,
"preview": "/*\n * TRArray.m vi:ts=4:sw=4:expandtab:\n * Simple linked list\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n *"
},
{
"path": "src/TRAuthLDAPConfig.h",
"chars": 4135,
"preview": "/*\n * TRAuthLDAPConfig.h vi:ts=4:sw=4:expandtab:\n * Simple Configuration\n *\n * Copyright (c) 2005 - 2007 Landon Fuller <"
},
{
"path": "src/TRAuthLDAPConfig.m",
"chars": 29855,
"preview": "/*\n * TRAuthLDAPConfig.m vi:ts=4:sw=4:expandtab:\n * Simple Configuration\n *\n * Copyright (c) 2005 - 2007 Landon Fuller <"
},
{
"path": "src/TRAutoreleasePool.h",
"chars": 1305,
"preview": "/* \n * TRAutoreleasePool.h vi:ts=4:sw=4:expandtab:\n *\n * Copyright (C) 2006 - 2007 Landon Fuller <landonf@opendarwin.org"
},
{
"path": "src/TRAutoreleasePool.m",
"chars": 6116,
"preview": "/* \n * TRAutoreleasePool.m vi:ts=4:sw=4:expandtab:\n *\n * Copyright (C) 2006 - 2007 Landon Fuller <landonf@opendarwin.org"
},
{
"path": "src/TRConfig.h",
"chars": 2362,
"preview": "/*\n * TRConfig.h vi:ts=4:sw=4:expandtab:\n * Generic Configuration Parser\n *\n * Author: Landon Fuller <landonf@threerings"
},
{
"path": "src/TRConfig.m",
"chars": 3611,
"preview": "/*\n * TRConfig.m vi:ts=4:sw=4:expandtab:\n * Generic Configuration Parser\n *\n * Author: Landon Fuller <landonf@threerings"
},
{
"path": "src/TRConfigLexer.h",
"chars": 2325,
"preview": "/*\n * TRConfigLexer.h vi:ts=4:sw=4:expandtab:\n * Configuration Lexer\n *\n * Author: Landon Fuller <landonf@threerings.net"
},
{
"path": "src/TRConfigLexer.re",
"chars": 9836,
"preview": "/*\n * TRConfigLexer.re vi:ts=4:sw=4:expandtab:\n * Configuration Lexer\n *\n * Author: Landon Fuller <landonf@threerings.ne"
},
{
"path": "src/TRConfigParser.lemon",
"chars": 2806,
"preview": "/*\n * TRConfigParser.lemon vi:ts=4:sw=4:expandtab:\n * Configuration Parser\n *\n * Author: Landon Fuller <landonf@threerin"
},
{
"path": "src/TRConfigToken.h",
"chars": 2928,
"preview": "/*\n * TRConfigToken.h vi:ts=4:sw=4:expandtab:\n * Configuration Lexer Tokens\n *\n * Author: Landon Fuller <landonf@threeri"
},
{
"path": "src/TRConfigToken.m",
"chars": 5312,
"preview": "/*\n * TRConfigToken.m vi:ts=4:sw=4:expandtab:\n * Configuration Lexer Tokens\n *\n * Author: Landon Fuller <landonf@threeri"
},
{
"path": "src/TREnumerator.h",
"chars": 1879,
"preview": "/*\n * TREnumerator.h vi:ts=4:sw=4:expandtab:\n * Abstract enumerator class\n *\n * Author: Landon Fuller <landonf@threering"
},
{
"path": "src/TREnumerator.m",
"chars": 1867,
"preview": "/*\n * TREnumerator.m vi:ts=4:sw=4:expandtab:\n * Abstract enumerator class\n *\n * Author: Landon Fuller <landonf@threering"
},
{
"path": "src/TRHash.h",
"chars": 2104,
"preview": "/*\n * TRHash.h vi:ts=4:sw=4:expandtab:\n * Hash table\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n * Copyrigh"
},
{
"path": "src/TRHash.m",
"chars": 5819,
"preview": "/*\n * TRHash.m vi:ts=4:sw=4:expandtab:\n * Hash Table\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n * Copyrigh"
},
{
"path": "src/TRLDAPAccountRepository.h",
"chars": 2453,
"preview": "/*\n * TRLDAPAccountRepository.h vi:ts=4:sw=4:expandtab:\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n * Copyr"
},
{
"path": "src/TRLDAPAccountRepository.m",
"chars": 3025,
"preview": "/*\n * TRLDAPAccountRepository.m vi:ts=4:sw=4:expandtab:\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n * Copyr"
},
{
"path": "src/TRLDAPConnection.h",
"chars": 2692,
"preview": "/*\n * TRLDAPConnection.h vi:ts=4:sw=4:expandtab:\n * Simple LDAP Wrapper\n *\n * Copyright (c) 2005 - 2007 Landon Fuller <l"
},
{
"path": "src/TRLDAPConnection.m",
"chars": 16657,
"preview": "/*\n * TRLDAPConnection.m vi:ts=4:sw=4:expandtab:\n * Simple LDAP Wrapper\n *\n * Copyright (c) 2005 - 2007 Landon Fuller <l"
},
{
"path": "src/TRLDAPEntry.h",
"chars": 2057,
"preview": "/*\n * TRLDAPEntry.h vi:ts=4:sw=4:expandtab:\n * LDAP Entry\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n * Cop"
},
{
"path": "src/TRLDAPEntry.m",
"chars": 2429,
"preview": "/*\n * TRLDAPEntry.m vi:ts=4:sw=4:expandtab:\n * LDAP Entry\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n * Cop"
},
{
"path": "src/TRLDAPGroupConfig.h",
"chars": 2490,
"preview": "/*\n * TRLDAPGroupConfig.h vi:ts=4:sw=4:expandtab:\n * LDAP Group Configuration\n *\n * Author: Landon Fuller <landonf@three"
},
{
"path": "src/TRLDAPGroupConfig.m",
"chars": 3390,
"preview": "/*\n * TRLDAPGroupConfig.m vi:ts=4:sw=4:expandtab:\n * LDAP Group Configuration\n *\n * Author: Landon Fuller <landonf@three"
},
{
"path": "src/TRLDAPSearchFilter.h",
"chars": 1954,
"preview": "/*\n * TRLDAPSearchFilter.h vi:ts=4:sw=4:expandtab:\n * LDAP Search Filter Generator\n *\n * Author: Landon Fuller <landonf@"
},
{
"path": "src/TRLDAPSearchFilter.m",
"chars": 5334,
"preview": "/*\n * TRLDAPSearchFilter.m vi:ts=4:sw=4:expandtab:\n * LDAP Search Filter Generator\n *\n * Author: Landon Fuller <landonf@"
},
{
"path": "src/TRLocalPacketFilter.h",
"chars": 2590,
"preview": "/*\n * TRLocalPacketFilter.h vi:ts=4:sw=4:expandtab:\n * Interface to local OpenBSD /dev/pf\n *\n * Author: Landon Fuller <l"
},
{
"path": "src/TRLocalPacketFilter.m",
"chars": 11360,
"preview": "/*\n * TRLocalPacketFilter.m vi:ts=4:sw=4:expandtab:\n * Interface to local OpenBSD /dev/pf\n *\n * Author: Landon Fuller <l"
},
{
"path": "src/TRLog.h",
"chars": 2207,
"preview": "/*\n * TRLog.h vi:ts=4:sw=4:expandtab:\n * Simple logging interface\n *\n * Author: Landon Fuller <landonf@threerings.net>\n "
},
{
"path": "src/TRLog.m",
"chars": 3750,
"preview": "/*\n * TRLog.m vi:ts=4:sw=4:expandtab:\n * Simple logging interface\n *\n * Author: Landon Fuller <landonf@threerings.net>\n "
},
{
"path": "src/TRObject.h",
"chars": 3655,
"preview": "/*\n * TRObject.h vi:ts=4:sw=4:expandtab:\n * Project Root Class\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n "
},
{
"path": "src/TRObject.m",
"chars": 3963,
"preview": "/*\n * TRObject.m vi:ts=4:sw=4:expandtab:\n * Project Root Class\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n "
},
{
"path": "src/TRPFAddress.h",
"chars": 2340,
"preview": "/*\n * TRPFAddress.h vi:ts=4:sw=4:expandtab:\n * OpenBSD PF Address\n *\n * Author: Landon Fuller <landonf@threerings.net>\n "
},
{
"path": "src/TRPFAddress.m",
"chars": 3146,
"preview": "/*\n * TRPFAddress.m vi:ts=4:sw=4:expandtab:\n * OpenBSD PF Address\n *\n * Author: Landon Fuller <landonf@threerings.net>\n "
},
{
"path": "src/TRPacketFilter.h",
"chars": 4496,
"preview": "/*\n * TRPacketFilter.h vi:ts=4:sw=4:expandtab:\n * Generic interface to the OpenBSD Packet Filter\n *\n * Author: Landon Fu"
},
{
"path": "src/TRPacketFilter.m",
"chars": 2628,
"preview": "/*\n * TRLocalPacketFilter.m vi:ts=4:sw=4:expandtab:\n * Interface to local OpenBSD /dev/pf\n *\n * Author: Landon Fuller <l"
},
{
"path": "src/TRString.h",
"chars": 2899,
"preview": "/*\n * TRString.h vi:ts=4:sw=4:expandtab:\n * Brain-dead Dynamic Strings\n *\n * Copyright (c) 2005 - 2007 Landon Fuller <la"
},
{
"path": "src/TRString.m",
"chars": 10005,
"preview": "/*\n * TRString.m vi:ts=4:sw=4:expandtab:\n * Brain-dead Dynamic Strings\n *\n * Copyright (c) 2005 - 2007 Landon Fuller <la"
},
{
"path": "src/TRVPNPlugin.h",
"chars": 2495,
"preview": "/*\n * TRVPNPlugin.h vi:ts=4:sw=4:expandtab:\n * Base Include File\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *"
},
{
"path": "src/TRVPNSession.h",
"chars": 1915,
"preview": "/*\n * TRVPNSession.h vi:ts=4:sw=4:expandtab:\n * An active VPN session\n *\n * Author: Landon Fuller <landonf@threerings.ne"
},
{
"path": "src/TRVPNSession.m",
"chars": 2091,
"preview": "/*\n * TRVPNSession.m vi:ts=4:sw=4:expandtab:\n * An active VPN session\n *\n * Author: Landon Fuller <landonf@threerings.ne"
},
{
"path": "src/asprintf.c",
"chars": 0,
"preview": ""
},
{
"path": "src/auth-ldap.m",
"chars": 19670,
"preview": "/*\n * auth_ldap.m vi:ts=4:sw=4:expandtab:\n * OpenVPN LDAP Authentication Plugin\n *\n * Copyright (c) 2005 - 2007 Landon F"
},
{
"path": "src/base64.c",
"chars": 7974,
"preview": "/*\n * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * Copyright ("
},
{
"path": "src/base64.h",
"chars": 4243,
"preview": "/*\n * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.\n *\n * @APPLE_LICENSE_HEADER_START@\n * \n * Copyright ("
},
{
"path": "src/hash.c",
"chars": 28254,
"preview": "/*\n * Hash Table Data Type vi:ts=4:sw=4:expandtab:\n * Copyright (C) 1997 Kaz Kylheku <kaz@ashi.footprints.net>\n *\n * Fre"
},
{
"path": "src/hash.h",
"chars": 9238,
"preview": "/*\n * Hash Table Data Type vi:ts=4:sw=4:expandtab:\n * Copyright (C) 1997 Kaz Kylheku <kaz@ashi.footprints.net>\n *\n * Fre"
},
{
"path": "src/openvpn-cr.c",
"chars": 1913,
"preview": "#include \"openvpn-cr.h\"\r\n\r\n#include \"base64.h\"\r\n#include <string.h>\r\n\r\nstatic const char * static_cr_label = \"SCRV1\";\r\ns"
},
{
"path": "src/openvpn-cr.h",
"chars": 544,
"preview": "#ifndef OPENVPN_CR_H\n#define OPENVPN_CR_H\r\n\r\n#define MAXTOKENLENGTH 1024\r\n\r\ntypedef struct\r\n{\r\n\tchar protocol[6];\r\n\tchar"
},
{
"path": "src/strlcpy.c",
"chars": 2393,
"preview": "/*\t$OpenBSD: strlcpy.c,v 1.4 1999/05/01 18:56:41 millert Exp $\t*/\n\n/*\n * Copyright (c) 1998 Todd C. Miller <Todd.Miller@"
},
{
"path": "src/strlcpy.h",
"chars": 1638,
"preview": "/*\n * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>\n * All rights reserved.\n *\n * Redistribution and use"
},
{
"path": "src/testplugin.c",
"chars": 6445,
"preview": "/*\n * testplugin.c vi:ts=4:sw=4:expandtab:\n * OpenVPN LDAP Authentication Plugin Test Driver\n *\n * Copyright (c) 2005 - "
},
{
"path": "src/xmalloc.c",
"chars": 2317,
"preview": "/*\n * xmalloc.c vi:ts=4:sw=4:expandtab:\n * \"Safe\" malloc routines -- and by safe, I mean: \"fail quickly\"\n *\n * Copyright"
},
{
"path": "src/xmalloc.h",
"chars": 1937,
"preview": "/*\n * xmalloc.h vi:ts=4:sw=4:expandtab:\n *\n * \"Safe\" malloc routines -- and by safe, I mean \"fail quickly\"\n *\n * Copyrig"
},
{
"path": "tests/Makefile.in",
"chars": 1427,
"preview": "srcdir= @srcdir@\ntop_srcdir= @top_srcdir@\ntop_builddir= @top_builddir@\nVPATH= @srcdir@\n\ninclude $"
},
{
"path": "tests/PXTestAssert.h",
"chars": 47305,
"preview": "\n//\n// Test macros compatible with (and borrowed from) SenTestCase\n// Derived from GTMSenTestCase.h\n//\n// Copyright 2"
},
{
"path": "tests/PXTestAssert.m",
"chars": 2885,
"preview": "//\n// Derived from GTMSenTestCase.h\n//\n// Copyright 2007-2008 Google Inc.\n//\n// Licensed under the Apache License, Ve"
},
{
"path": "tests/PXTestCase.h",
"chars": 1500,
"preview": "/*\n * Author: Landon Fuller <landonf@plausible.coop>\n *\n * Copyright (c) 2012 Landon Fuller <landonf@bikemonkey.org>\n * "
},
{
"path": "tests/PXTestCase.m",
"chars": 1835,
"preview": "/*\n * Author: Landon Fuller <landonf@plausible.coop>\n *\n * Copyright (c) 2012 Landon Fuller <landonf@bikemonkey.org>\n * "
},
{
"path": "tests/PXTestCaseRunner.h",
"chars": 1616,
"preview": "/*\n * Author: Landon Fuller <landonf@plausible.coop>\n * Copyright (c) 2008-2012 Plausible Labs Cooperative, Inc.\n * All "
},
{
"path": "tests/PXTestCaseRunner.m",
"chars": 5438,
"preview": "/*\n * Author: Landon Fuller <landonf@plausible.coop>\n * Copyright (c) 2008-2012 Plausible Labs Cooperative, Inc.\n * All "
},
{
"path": "tests/PXTestConsoleResultHandler.h",
"chars": 1388,
"preview": "/*\n * Author: Landon Fuller <landonf@plausible.coop>\n * Copyright (c) 2008-2012 Plausible Labs Cooperative, Inc.\n * All "
},
{
"path": "tests/PXTestConsoleResultHandler.m",
"chars": 3769,
"preview": "/*\n * Author: Landon Fuller <landonf@plausible.coop>\n * Copyright (c) 2008-2012 Plausible Labs Cooperative, Inc.\n * All "
},
{
"path": "tests/PXTestException.h",
"chars": 4546,
"preview": "//\n// File derived from: GTMSenTestCase.h\n//\n// Copyright 2007-2008 Google Inc.\n//\n// Licensed under the Apache Licen"
},
{
"path": "tests/PXTestException.m",
"chars": 8185,
"preview": "//\n// File derived from: GTMSenTestCase.m\n//\n// Copyright 2007-2008 Google Inc.\n//\n// Licensed under the Apache Licen"
},
{
"path": "tests/PXTestObjC.h",
"chars": 1251,
"preview": "/*\n * Author: Landon Fuller <landonf@plausible.coop>\n * Copyright (c) 2008-2012 Plausible Labs Cooperative, Inc.\n * All "
},
{
"path": "tests/PXTestResultHandler.h",
"chars": 2708,
"preview": "/*\n * Author: Landon Fuller <landonf@plausiblelabs.com>\n * Copyright (c) 2008 Plausible Labs Cooperative, Inc.\n * All ri"
},
{
"path": "tests/TRArrayTests.m",
"chars": 5256,
"preview": "/*\n * TRArray.m vi:ts=4:sw=4:expandtab:\n * TRArray Unit Tests\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n *"
},
{
"path": "tests/TRAuthLDAPConfigTests.m",
"chars": 5019,
"preview": "/*\n * TRAuthLDAPConfig.m vi:ts=4:sw=4:expandtab:\n * TRAuthLDAPConfig Unit Tests\n *\n * Author: Landon Fuller <landonf@thr"
},
{
"path": "tests/TRAutoreleasePoolTests.m",
"chars": 2030,
"preview": "/*\n * TRAutoreleasePool.m vi:ts=4:sw=4:expandtab:\n *\n * Copyright (C) 2005 - 2007 Landon Fuller <landonf@opendarwin.org>"
},
{
"path": "tests/TRConfigLexerTests.m",
"chars": 3377,
"preview": "/*\n * TRConfigLexer.m vi:ts=4:sw=4:expandtab:\n * TRConfigLexer Unit Tests\n *\n * Author: Landon Fuller <landonf@threering"
},
{
"path": "tests/TRConfigTests.m",
"chars": 3473,
"preview": "/*\n * TRConfig.m vi:ts=4:sw=4:expandtab:\n * TRConfig Unit Tests\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n"
},
{
"path": "tests/TRConfigTokenTests.m",
"chars": 4420,
"preview": "/*\n * TRConfigToken.m vi:ts=4:sw=4:expandtab:\n * TRConfigToken Unit Tests\n *\n * Author: Landon Fuller <landonf@threering"
},
{
"path": "tests/TRHashTests.m",
"chars": 5422,
"preview": "/*\n * TRHash.m vi:ts=4:sw=4:expandtab:\n * TRHash Unit Tests\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n * C"
},
{
"path": "tests/TRLDAPAccountRepositoryTests.m",
"chars": 3071,
"preview": "/*\n * TRLDAPAccountRepositoryTests.m vi:ts=4:sw=4:expandtab:\n * TRLDAPAccountRepository Unit Tests\n *\n * Author: Landon "
},
{
"path": "tests/TRLDAPConnectionTests.m",
"chars": 3142,
"preview": "/*\n * TRLDAPConnection.m vi:ts=4:sw=4:expandtab:\n * TRLDAPConnection Unit Tests\n *\n * Author: Landon Fuller <landonf@thr"
},
{
"path": "tests/TRLDAPEntryTests.m",
"chars": 2413,
"preview": "/*\n * TRLDAPEntry.m vi:ts=4:sw=4:expandtab:\n * TRLDAPEntry Unit Tests\n *\n * Author: Landon Fuller <landonf@threerings.ne"
},
{
"path": "tests/TRLDAPGroupConfigTests.m",
"chars": 2111,
"preview": "/*\n * TRLDAPGroupConfig.m vi:ts=4:sw=4:expandtab:\n * TRLDAPGroundConfig Unit Tests\n *\n * Author: Landon Fuller <landonf@"
},
{
"path": "tests/TRLDAPSearchFilterTests.m",
"chars": 3176,
"preview": "/*\n * TRLDAPSearchFilter.m vi:ts=4:sw=4:expandtab:\n * TRLDAPSearchFilter Unit Tests\n *\n * Author: Landon Fuller <landonf"
},
{
"path": "tests/TRLocalPacketFilterTests.m",
"chars": 6408,
"preview": "/*\n * TRLocalPacketFilter.m vi:ts=4:sw=4:expandtab:\n * TRLocalPacketFilter Unit Tests\n *\n * Author: Landon Fuller <lando"
},
{
"path": "tests/TRObjectTests.m",
"chars": 3274,
"preview": "/*\n * TRObject.m vi:ts=4:sw=4:expandtab:\n * TRObject Unit Tests\n *\n * Author: Landon Fuller <landonf@bikemonkey.org>\n *\n"
},
{
"path": "tests/TRPFAddressTests.m",
"chars": 3774,
"preview": "/*\n * TRPPFAddress.m vi:ts=4:sw=4:expandtab:\n * TRPFAddress Unit Tests\n *\n * Author: Landon Fuller <landonf@threerings.n"
},
{
"path": "tests/TRStringTests.m",
"chars": 6171,
"preview": "/*\n * TRString.m vi:ts=4:sw=4:expandtab:\n * TRString Unit Tests\n *\n * Author: Landon Fuller <landonf@threerings.net>\n *\n"
},
{
"path": "tests/TRVPNSessionTests.m",
"chars": 2264,
"preview": "/*\n * TRVPNSession.m vi:ts=4:sw=4:expandtab:\n * TRVPNSession Unit Tests\n *\n * Author: Landon Fuller <landonf@threerings."
},
{
"path": "tests/data/TRConfig.conf",
"chars": 111,
"preview": "<LDAP>\n\t# LDAP server URL\n\tURI\t\tldap://ldap1.example.org\n\n\t# Network timeout (in seconds)\n\tTimeout\t\t15\n</LDAP>\n"
},
{
"path": "tests/data/auth-ldap-bad-section.conf",
"chars": 61,
"preview": "# Contains an unknown section type\n<BadSection>\n</BadSection>"
},
{
"path": "tests/data/auth-ldap-mismatched.conf",
"chars": 456,
"preview": "<LDAP>\n\t# LDAP server URL\n\tURL\t\tldap://ldap1.example.org\n\n\t# Network timeout (in seconds)\n\tTimeout\t\t15\n\n\t# Enable TLS\n\tT"
},
{
"path": "tests/data/auth-ldap-missing-newline.conf",
"chars": 1038,
"preview": "# A configuration that's missing the trailing newline.\n# Test for issue #8\n<LDAP>\n\t# LDAP server URL\n\tURL\t\tldap://ldap1."
},
{
"path": "tests/data/auth-ldap-multikey.conf",
"chars": 840,
"preview": "<LDAP>\n\t# LDAP server URL - Twice\n\tURL\t\tldap://ldap1.example.org\n\tURL\t\tldap://ldap1.example.org\n\n\t# Network timeout (in "
},
{
"path": "tests/data/auth-ldap-named.conf",
"chars": 412,
"preview": "<LDAP Fred>\n\t# LDAP server URL\n\tURL\t\tldap://ldap1.example.org\n\n\t# Network timeout (in seconds)\n\tTimeout\t\t15\n\n\t# Enable T"
},
{
"path": "tests/data/auth-ldap-pf.conf",
"chars": 1027,
"preview": "<LDAP>\n\t# LDAP server URL\n\tURL\t\tldap://ldap1.example.org\n\n\t# Bind DN (If your LDAP server doesn't support anonymous bind"
},
{
"path": "tests/data/auth-ldap-required.conf",
"chars": 836,
"preview": "<LDAP>\n\t# LDAP server URL\n\t# Missing this required setting\n\t# URL\t\tldap://ldap1.example.org\n\n\t# Network timeout (in seco"
},
{
"path": "tests/data/auth-ldap.conf",
"chars": 964,
"preview": "<LDAP>\n\t# LDAP server URL\n\tURL\t\tldap://ldap1.example.org\n\n\t# Bind DN (If your LDAP server doesn't support anonymous bind"
},
{
"path": "tests/data/test-lineNumbers.conf",
"chars": 135,
"preview": "line\t1\n<2 2>\nline\t3 # Comment\n</2>\n# Comments\nline\t6\nline\t7\t\nline\t8\nline 9\n<10 10> # Comment\n\t<11 11>\n\t</11>\n\tline\t13"
},
{
"path": "tests/mockpf.c",
"chars": 17814,
"preview": "/*\n * mockpf.c vi:ts=4:sw=4:expandtab:\n * Evil testing shim that captures pf ioctls and emulates\n * the /dev/pf interfac"
},
{
"path": "tests/mockpf.h",
"chars": 1762,
"preview": "/*\n * mockpf.h vi:ts=4:sw=4:expandtab:\n * Evil testing shim that captures pf ioctls and emulates\n * the /dev/pf interfac"
},
{
"path": "tests/tests.h",
"chars": 2544,
"preview": "/*\n * tests.h vi:ts=4:sw=4:expandtab:\n * OpenVPN LDAP Authentication Plugin Unit Tests\n *\n * Author: Landon Fuller <land"
},
{
"path": "tests/tests.m",
"chars": 2768,
"preview": "/*\n * tests.c vi:ts=4:sw=4:expandtab:\n * OpenVPN LDAP Authentication Plugin Unit Tests\n *\n * Author: Landon Fuller <land"
},
{
"path": "tools/Makefile.in",
"chars": 619,
"preview": "srcdir= @srcdir@\ntop_srcdir= @top_srcdir@\ntop_builddir= @top_builddir@\nVPATH= @srcdir@\n\ninclude $"
},
{
"path": "tools/README",
"chars": 520,
"preview": "This directory contains tools required to build the OpenVPN Auth-LDAP Plugin:\n - lemon 2012-01-14 was downloaded from ht"
},
{
"path": "tools/lemon.c",
"chars": 147407,
"preview": "/*\n** This file contains all sources (including headers) to the LEMON\n** LALR(1) parser generator. The sources have bee"
},
{
"path": "tools/lempar.c",
"chars": 27793,
"preview": "/* Driver template for the LEMON parser generator.\n** The author disclaims copyright to this source code.\n*/\n/* First of"
},
{
"path": "tools/makeheaders.c",
"chars": 99313,
"preview": "static const char ident[] = \"@(#) $Header: /cvstrac/cvstrac/makeheaders.c,v 1.4 2005/03/16 22:17:51 drh Exp $\";\n/*\n** Th"
},
{
"path": "ubuntu_16.04_lts_build.sh",
"chars": 402,
"preview": "#! /bin/bash\n\n# git clone https://github.com/snowrider311/openvpn-auth-ldap\n# cd openvpn-auth-ldap/\n# source ubuntu_16.0"
},
{
"path": "ubuntu_16.04_lts_package.sh",
"chars": 603,
"preview": "#! /bin/bash\n\nsudo apt-get install -y ruby ruby-dev rubygems build-essential\nsudo gem install --no-ri --no-rdoc fpm\n\nmkd"
}
]
About this extraction
This page contains the full source code of the threerings/openvpn-auth-ldap GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 133 files (960.8 KB), approximately 273.4k tokens, and a symbol index with 417 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.