mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	 5b5e81c637
			
		
	
	
		5b5e81c637
		
	
	
	
	
		
			
			svn+ssh://pythondev@svn.python.org/python/trunk ........ r59606 | georg.brandl | 2007-12-29 11:57:00 +0100 (Sat, 29 Dec 2007) | 2 lines Some cleanup in the docs. ........ r59611 | martin.v.loewis | 2007-12-29 19:49:21 +0100 (Sat, 29 Dec 2007) | 2 lines Bug #1699: Define _BSD_SOURCE only on OpenBSD. ........ r59612 | raymond.hettinger | 2007-12-29 23:09:34 +0100 (Sat, 29 Dec 2007) | 1 line Simpler documentation for itertools.tee(). Should be backported. ........ r59613 | raymond.hettinger | 2007-12-29 23:16:24 +0100 (Sat, 29 Dec 2007) | 1 line Improve docs for itertools.groupby(). The use of xrange(0) to create a unique object is less obvious than object(). ........ r59620 | christian.heimes | 2007-12-31 15:47:07 +0100 (Mon, 31 Dec 2007) | 3 lines Added wininst-9.0.exe executable for VS 2008 Integrated bdist_wininst into PCBuild9 directory ........ r59621 | christian.heimes | 2007-12-31 15:51:18 +0100 (Mon, 31 Dec 2007) | 1 line Moved PCbuild directory to PC/VS7.1 ........ r59622 | christian.heimes | 2007-12-31 15:59:26 +0100 (Mon, 31 Dec 2007) | 1 line Fix paths for build bot ........ r59623 | christian.heimes | 2007-12-31 16:02:41 +0100 (Mon, 31 Dec 2007) | 1 line Fix paths for build bot, part 2 ........ r59624 | christian.heimes | 2007-12-31 16:18:55 +0100 (Mon, 31 Dec 2007) | 1 line Renamed PCBuild9 directory to PCBuild ........
		
			
				
	
	
		
			94 lines
		
	
	
		
			No EOL
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			No EOL
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <windows.h>
 | |
| #include <sys/types.h>
 | |
| #include <sys/stat.h>
 | |
| #include <stdio.h>
 | |
| 
 | |
| #define CMD_SIZE 500
 | |
| 
 | |
| /* This file creates the getbuildinfo.o object, by first
 | |
|    invoking subwcrev.exe (if found), and then invoking cl.exe.
 | |
|    As a side effect, it might generate PCBuild\getbuildinfo2.c
 | |
|    also. If this isn't a subversion checkout, or subwcrev isn't
 | |
|    found, it compiles ..\\Modules\\getbuildinfo.c instead.
 | |
| 
 | |
|    Currently, subwcrev.exe is found from the registry entries
 | |
|    of TortoiseSVN.
 | |
| 
 | |
|    No attempt is made to place getbuildinfo.o into the proper
 | |
|    binary directory. This isn't necessary, as this tool is
 | |
|    invoked as a pre-link step for pythoncore, so that overwrites
 | |
|    any previous getbuildinfo.o.
 | |
| 
 | |
| */
 | |
| 
 | |
| int make_buildinfo2()
 | |
| {
 | |
| 	struct _stat st;
 | |
| 	HKEY hTortoise;
 | |
| 	char command[CMD_SIZE+1];
 | |
| 	DWORD type, size;
 | |
| 	if (_stat(".svn", &st) < 0)
 | |
| 		return 0;
 | |
| 	/* Allow suppression of subwcrev.exe invocation if a no_subwcrev file is present. */
 | |
| 	if (_stat("no_subwcrev", &st) == 0)
 | |
| 		return 0;
 | |
| 	if (RegOpenKey(HKEY_LOCAL_MACHINE, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS &&
 | |
| 	    RegOpenKey(HKEY_CURRENT_USER, "Software\\TortoiseSVN", &hTortoise) != ERROR_SUCCESS)
 | |
| 		/* Tortoise not installed */
 | |
| 		return 0;
 | |
| 	command[0] = '"';  /* quote the path to the executable */
 | |
| 	size = sizeof(command) - 1;
 | |
| 	if (RegQueryValueEx(hTortoise, "Directory", 0, &type, command+1, &size) != ERROR_SUCCESS ||
 | |
| 	    type != REG_SZ)
 | |
| 		/* Registry corrupted */
 | |
| 		return 0;
 | |
| 	strcat_s(command, CMD_SIZE, "bin\\subwcrev.exe");
 | |
| 	if (_stat(command+1, &st) < 0)
 | |
| 		/* subwcrev.exe not part of the release */
 | |
| 		return 0;
 | |
| 	strcat_s(command, CMD_SIZE, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c");
 | |
| 	puts(command); fflush(stdout);
 | |
| 	if (system(command) < 0)
 | |
| 		return 0;
 | |
| 	return 1;
 | |
| }
 | |
| 
 | |
| int main(int argc, char*argv[])
 | |
| {
 | |
| 	char command[500] = "cl.exe -c -D_WIN32 -DUSE_DL_EXPORT -D_WINDOWS -DWIN32 -D_WINDLL ";
 | |
| 	int do_unlink, result;
 | |
| 	if (argc != 2) {
 | |
| 		fprintf(stderr, "make_buildinfo $(ConfigurationName)\n");
 | |
| 		return EXIT_FAILURE;
 | |
| 	}
 | |
| 	if (strcmp(argv[1], "Release") == 0) {
 | |
| 		strcat_s(command, CMD_SIZE, "-MD ");
 | |
| 	}
 | |
| 	else if (strcmp(argv[1], "Debug") == 0) {
 | |
| 		strcat_s(command, CMD_SIZE, "-D_DEBUG -MDd ");
 | |
| 	}
 | |
| 	else if (strcmp(argv[1], "ReleaseItanium") == 0) {
 | |
| 		strcat_s(command, CMD_SIZE, "-MD /USECL:MS_ITANIUM ");
 | |
| 	}
 | |
| 	else if (strcmp(argv[1], "ReleaseAMD64") == 0) {
 | |
| 		strcat_s(command, CMD_SIZE, "-MD ");
 | |
| 		strcat_s(command, CMD_SIZE, "-MD /USECL:MS_OPTERON ");
 | |
| 	}
 | |
| 	else {
 | |
| 		fprintf(stderr, "unsupported configuration %s\n", argv[1]);
 | |
| 		return EXIT_FAILURE;
 | |
| 	}
 | |
| 
 | |
| 	if ((do_unlink = make_buildinfo2()))
 | |
| 		strcat_s(command, CMD_SIZE, "getbuildinfo2.c -DSUBWCREV ");
 | |
| 	else
 | |
| 		strcat_s(command, CMD_SIZE, "..\\Modules\\getbuildinfo.c");
 | |
| 	strcat_s(command, CMD_SIZE, " -Fogetbuildinfo.o -I..\\Include -I..\\PC");
 | |
| 	puts(command); fflush(stdout);
 | |
| 	result = system(command);
 | |
| 	if (do_unlink)
 | |
| 		_unlink("getbuildinfo2.c");
 | |
| 	if (result < 0)
 | |
| 		return EXIT_FAILURE;
 | |
| 	return 0;
 | |
| } |