summaryrefslogtreecommitdiff
path: root/ext/pdo_oci/config.w32
blob: 1e0729e47dfa97a9cdb675448c0cdbdbff1b8528 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// $Id$
// vim:ft=javascript

ARG_WITH("pdo-oci", "Oracle OCI support for PDO", "no");

if (PHP_PDO_OCI != "no") {

	pdo_oci_dirs = new Array(
		PHP_PDO_OCI,
		PHP_PDO_OCI + "\\oci",
		PHP_PHP_BUILD + "\\instantclient10_*\\sdk",
		PHP_PHP_BUILD + "\\oci92"
	);

	pdo_oci_lib_paths = "";
	pdo_oci_inc_paths = "";

	// find the oracle install
	for (i = 0; i < pdo_oci_dirs.length; i++) {
		pdo_oci_lib_paths += pdo_oci_dirs[i] + "\\lib;";
		pdo_oci_lib_paths += pdo_oci_dirs[i] + "\\lib\\msvc;";
		pdo_oci_inc_paths += pdo_oci_dirs[i] + "\\include;";
	}
	
	pdo_oci_inc_paths += PHP_PHP_BUILD + "\\include\\instantclient;"
	pdo_oci_lib_paths += PHP_PHP_BUILD + "\\lib\\instantclient;";

	pdo_oci_header = CHECK_HEADER_ADD_INCLUDE("oci.h", "CFLAGS_PDO_OCI", pdo_oci_inc_paths, null, null, true);

	if (pdo_oci_header && CHECK_LIB("oci.lib", "pdo_oci", pdo_oci_lib_paths)) {

		pdo_oci_inc_dir = FSO.GetParentFolderName(pdo_oci_header);

		EXTENSION('pdo_oci', 'pdo_oci.c oci_driver.c oci_statement.c');
		ADD_FLAG('CFLAGS_PDO_OCI', "/I ..\\pecl");

		/* probe for some functions not present in older versions */
		pdo_oci_inc_dir = FSO.GetFolder(pdo_oci_header);
		CHECK_FUNC_IN_HEADER('oci.h', 'OCIEnvCreate', pdo_oci_inc_dir, 'CFLAGS_PDO_OCI');
		CHECK_FUNC_IN_HEADER('ociap.h', 'OCIStmtFetch2', pdo_oci_inc_dir, 'CFLAGS_PDO_OCI');
		CHECK_FUNC_IN_HEADER('ociap.h', 'OCIEnvNlsCreate', pdo_oci_inc_dir, 'CFLAGS_PDO_OCI');

	} else {
		WARNING("pdo-oci not enabled; libraries and headers not found");
	}
	ADD_EXTENSION_DEP('pdo_oci', 'pdo');
}

ARG_WITH("pdo-oci8", "Oracle OCI 8 (only) support for PDO", "no");

if (PHP_PDO_OCI8 != "no") {
	pdo_oci_dirs = new Array(
		PHP_PDO_OCI,
		PHP_PHP_BUILD + "\\oci805"
	);

	pdo_oci_lib_paths = "";
	pdo_oci_inc_paths = "";

	// find the oracle install
	for (i = 0; i < pdo_oci_dirs.length; i++) {
		pdo_oci_lib_paths += pdo_oci_dirs[i] + "\\lib;";
		pdo_oci_lib_paths += pdo_oci_dirs[i] + "\\lib\\msvc;";
		pdo_oci_inc_paths += pdo_oci_dirs[i] + "\\include;";
	}

	pdo_oci_header = CHECK_HEADER_ADD_INCLUDE("oci.h", "CFLAGS_PDO_OCI8", pdo_oci_inc_paths, null, null, true);

	if (pdo_oci_header && CHECK_LIB("oci.lib", "pdo_oci8", pdo_oci_lib_paths)) {
		pdo_oci_inc_dir = FSO.GetParentFolderName(pdo_oci_header);

		EXTENSION('pdo_oci8', 'pdo_oci.c oci_driver.c oci_statement.c', null, null, null, "ext\\pdo_oci8");
		ADD_FLAG('CFLAGS_PDO_OCI8', "/I ..\\pecl");

		/* probe for some functions not present in older versions */
		pdo_oci_inc_dir = FSO.GetFolder(pdo_oci_header);
		CHECK_FUNC_IN_HEADER('oci.h', 'OCIEnvCreate', pdo_oci_inc_dir, 'CFLAGS_PDO_OCI8');
		CHECK_FUNC_IN_HEADER('ociap.h', 'OCIStmtFetch2', pdo_oci_inc_dir, 'CFLAGS_PDO_OCI8');
		CHECK_FUNC_IN_HEADER('ociap.h', 'OCIEnvNlsCreate', pdo_oci_inc_dir, 'CFLAGS_PDO_OCI8');

	} else {
		WARNING("pdo-oci8 not enabled; libraries and headers not found");
	}
	ADD_EXTENSION_DEP('pdo_oci8', 'pdo');
}