[Numpy-svn] r5545 - in branches/1.1.x/tools/win32build: . cpuid nsis_scripts

numpy-svn at scipy.org numpy-svn at scipy.org
Sun Jul 27 22:05:44 EDT 2008


Author: cdavid
Date: 2008-07-27 21:05:30 -0500 (Sun, 27 Jul 2008)
New Revision: 5545

Added:
   branches/1.1.x/tools/win32build/README.txt
   branches/1.1.x/tools/win32build/cpuid/
   branches/1.1.x/tools/win32build/cpuid/SConstruct
   branches/1.1.x/tools/win32build/cpuid/cpuid.c
   branches/1.1.x/tools/win32build/cpuid/cpuid.h
   branches/1.1.x/tools/win32build/cpuid/test.c
   branches/1.1.x/tools/win32build/nsis_scripts/
   branches/1.1.x/tools/win32build/nsis_scripts/numpy-superinstaller-2.4.nsi
   branches/1.1.x/tools/win32build/nsis_scripts/numpy-superinstaller-2.5.nsi
Removed:
   branches/1.1.x/tools/win32build/cpuid/SConstruct
   branches/1.1.x/tools/win32build/cpuid/cpuid.c
   branches/1.1.x/tools/win32build/cpuid/cpuid.h
   branches/1.1.x/tools/win32build/cpuid/test.c
   branches/1.1.x/tools/win32build/nsis_scripts/numpy-superinstaller-2.4.nsi
   branches/1.1.x/tools/win32build/nsis_scripts/numpy-superinstaller-2.5.nsi
Log:
Merge cpuid/nsis_scripts for win32 build.

Copied: branches/1.1.x/tools/win32build/README.txt (from rev 5240, trunk/tools/win32build/README.txt)

Copied: branches/1.1.x/tools/win32build/cpuid (from rev 5240, trunk/tools/win32build/cpuid)

Deleted: branches/1.1.x/tools/win32build/cpuid/SConstruct
===================================================================
--- trunk/tools/win32build/cpuid/SConstruct	2008-05-26 11:29:37 UTC (rev 5240)
+++ branches/1.1.x/tools/win32build/cpuid/SConstruct	2008-07-28 02:05:30 UTC (rev 5545)
@@ -1,5 +0,0 @@
-env = Environment(tools = ['mingw'])
-
-#libcpuid = env.SharedLibrary('cpuid', source = ['cpuid.c'])
-#test = env.Program('test', source = ['test.c'], LIBS = libcpuid, RPATH = ['.'])
-test = env.Program('test', source = ['test.c', 'cpuid.c'])

Copied: branches/1.1.x/tools/win32build/cpuid/SConstruct (from rev 5240, trunk/tools/win32build/cpuid/SConstruct)

Deleted: branches/1.1.x/tools/win32build/cpuid/cpuid.c
===================================================================
--- trunk/tools/win32build/cpuid/cpuid.c	2008-05-26 11:29:37 UTC (rev 5240)
+++ branches/1.1.x/tools/win32build/cpuid/cpuid.c	2008-07-28 02:05:30 UTC (rev 5545)
@@ -1,169 +0,0 @@
-/*
- * TODO:
- *  - test for cpuid availability
- *  - test for OS support (tricky)
- */
-
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-
-#include "cpuid.h"
-
-#ifndef __GNUC__
-#error "Sorry, this code can only be compiled with gcc for now"
-#endif
-
-/*
- * SIMD: SSE 1, 2 and 3, MMX
- */
-#define CPUID_FLAG_MMX  1 << 23 /* in edx */
-#define CPUID_FLAG_SSE  1 << 25 /* in edx */
-#define CPUID_FLAG_SSE2 1 << 26 /* in edx */
-#define CPUID_FLAG_SSE3 1 << 0  /* in ecx */
-
-/*
- * long mode (AMD64 instruction set)
- */
-#define CPUID_FLAGS_LONG_MODE   1 << 29 /* in edx */
-
-/*
- * struct reprensenting the cpuid flags as put in the register
- */
-typedef struct {
-        uint32_t eax;
-        uint32_t ebx;
-        uint32_t ecx;
-        uint32_t edx;
-} cpuid_t;
-
-/*
- * Union to read bytes in 32 (intel) bits registers
- */
-union _le_reg {
-        uint8_t ccnt[4];
-        uint32_t reg;
-} __attribute__ ((packed)); 
-typedef union _le_reg le_reg_t ;
-
-/*
- * can_cpuid and read_cpuid are the two only functions using asm
- */
-static int can_cpuid(void)
-{
-    	int has_cpuid = 0 ;
-
-	/*
- 	 * See intel doc on cpuid (pdf)
- 	 */
-    	asm volatile (
-      		"pushfl			\n\t"
-      		"popl %%eax		\n\t"
-      		"movl %%eax, %%ecx	\n\t"
-      		"xorl $0x200000, %%eax	\n\t"
-      		"pushl %%eax		\n\t"
-      		"popfl			\n\t"
-      		"pushfl			\n\t"
-      		"popl %%eax		\n\t"
-      		"xorl %%ecx, %%eax	\n\t"
-      		"andl $0x200000, %%eax	\n\t"
-      		"movl %%eax,%0		\n\t"
-    		:"=m" (has_cpuid)
-    		: /*no input*/
-    		: "eax","ecx","cc");
-
-    	return (has_cpuid != 0) ;
-}
-
-/*
- * func is the "level" of cpuid. See for cpuid.txt
- */
-static cpuid_t read_cpuid(unsigned int func)
-{
-        cpuid_t res; 
-
-	/* we save ebx because it is used when compiled by -fPIC */
-        asm volatile(
-                "pushl %%ebx      \n\t" /* save %ebx */
-                "cpuid            \n\t"
-                "movl %%ebx, %1   \n\t" /* save what cpuid just put in %ebx */
-                "popl %%ebx       \n\t" /* restore the old %ebx */
-                : "=a"(res.eax), "=r"(res.ebx), 
-                  "=c"(res.ecx), "=d"(res.edx)
-                : "a"(func)
-                : "cc"); 
-
-        return res;
-}
-
-static uint32_t get_max_func()
-{
-        cpuid_t cpuid;
-
-        cpuid = read_cpuid(0);
-        return cpuid.eax;
-}
-
-/*
- * vendor should have at least CPUID_VENDOR_STRING_LEN characters
- */
-static int get_vendor_string(cpuid_t cpuid, char vendor[])
-{
-        int i;
-        le_reg_t treg;
-
-        treg.reg = cpuid.ebx;
-        for (i = 0; i < 4; ++i) {
-                vendor[i] = treg.ccnt[i];
-        }
-
-        treg.reg = cpuid.edx;
-        for (i = 0; i < 4; ++i) {
-                vendor[i+4] = treg.ccnt[i];
-        }
-
-        treg.reg = cpuid.ecx;
-        for (i = 0; i < 4; ++i) {
-                vendor[i+8] = treg.ccnt[i];
-        }
-        vendor[12] = '\0';
-        return 0;
-}
-
-int cpuid_get_caps(cpu_caps_t *cpu)
-{
-	cpuid_t cpuid;
-	int max;
-
-	memset(cpu, 0, sizeof(*cpu));
-
-	if (!can_cpuid()) {
-		return 0;
-	}
-
-	max = get_max_func();
-
-	/* Read vendor string */
-	cpuid = read_cpuid(0);
-	get_vendor_string(cpuid, cpu->vendor);
-	
-	if (max < 0x00000001) {
-		return 0;
-	}
-	cpuid = read_cpuid(0x00000001);
-
-	/* We can read mmx, sse 1 2 and 3 when cpuid level >= 0x00000001 */
-        if (cpuid.edx & CPUID_FLAG_MMX) {
-		cpu->has_mmx = 1;
-	}
-        if (cpuid.edx & CPUID_FLAG_SSE) {
-		cpu->has_sse = 1;
-	}
-        if (cpuid.edx & CPUID_FLAG_SSE2) {
-		cpu->has_sse2 = 1;
-	}
-        if (cpuid.ecx & CPUID_FLAG_SSE3) {
-		cpu->has_sse3 = 1;
-	}
-	return 0;
-}

Copied: branches/1.1.x/tools/win32build/cpuid/cpuid.c (from rev 5240, trunk/tools/win32build/cpuid/cpuid.c)

Deleted: branches/1.1.x/tools/win32build/cpuid/cpuid.h
===================================================================
--- trunk/tools/win32build/cpuid/cpuid.h	2008-05-26 11:29:37 UTC (rev 5240)
+++ branches/1.1.x/tools/win32build/cpuid/cpuid.h	2008-07-28 02:05:30 UTC (rev 5545)
@@ -1,20 +0,0 @@
-#ifndef _GABOU_CPUID_H 
-#define _GABOU_CPUID_H 
-
-#include <stdlib.h>
-
-#define CPUID_VENDOR_STRING_LEN  12
-
-struct _cpu_caps {
-	int has_cpuid;
-	int has_mmx;
-	int has_sse;
-	int has_sse2;
-	int has_sse3;
-	char vendor[CPUID_VENDOR_STRING_LEN+1];
-};
-typedef struct _cpu_caps cpu_caps_t;
-
-int cpuid_get_caps(cpu_caps_t *cpuinfo);
-
-#endif

Copied: branches/1.1.x/tools/win32build/cpuid/cpuid.h (from rev 5240, trunk/tools/win32build/cpuid/cpuid.h)

Deleted: branches/1.1.x/tools/win32build/cpuid/test.c
===================================================================
--- trunk/tools/win32build/cpuid/test.c	2008-05-26 11:29:37 UTC (rev 5240)
+++ branches/1.1.x/tools/win32build/cpuid/test.c	2008-07-28 02:05:30 UTC (rev 5545)
@@ -1,44 +0,0 @@
-#include <stdio.h>
-
-#include "cpuid.h"
-
-int main()
-{
-	cpu_caps_t *cpuinfo;
-
-	cpuinfo = malloc(sizeof(*cpuinfo));
-
-	if (cpuinfo == NULL) {
-		fprintf(stderr, "Error allocating\n");
-	}
-
-	cpuid_get_caps(cpuinfo);
-	printf("This cpu string is %s\n", cpuinfo->vendor);
-
-	if (cpuinfo->has_mmx) {
-		printf("This cpu has mmx instruction set\n");
-	} else {
-		printf("This cpu does NOT have mmx instruction set\n");
-	}
-
-	if (cpuinfo->has_sse) {
-		printf("This cpu has sse instruction set\n");
-	} else {
-		printf("This cpu does NOT have sse instruction set\n");
-	}
-
-	if (cpuinfo->has_sse2) {
-		printf("This cpu has sse2 instruction set\n");
-	} else {
-		printf("This cpu does NOT have sse2 instruction set\n");
-	}
-
-	if (cpuinfo->has_sse3) {
-		printf("This cpu has sse3 instruction set\n");
-	} else {
-		printf("This cpu does NOT have sse3 instruction set\n");
-	}
-
-	free(cpuinfo);
-	return 0;
-}

Copied: branches/1.1.x/tools/win32build/cpuid/test.c (from rev 5240, trunk/tools/win32build/cpuid/test.c)

Copied: branches/1.1.x/tools/win32build/nsis_scripts (from rev 5240, trunk/tools/win32build/nsis_scripts)

Deleted: branches/1.1.x/tools/win32build/nsis_scripts/numpy-superinstaller-2.4.nsi
===================================================================
--- trunk/tools/win32build/nsis_scripts/numpy-superinstaller-2.4.nsi	2008-05-26 11:29:37 UTC (rev 5240)
+++ branches/1.1.x/tools/win32build/nsis_scripts/numpy-superinstaller-2.4.nsi	2008-07-28 02:05:30 UTC (rev 5545)
@@ -1,120 +0,0 @@
-;--------------------------------
-;Include Modern UI
-
-!include "MUI2.nsh"
-
-;SetCompress off ; Useful to disable compression under development
-
-;--------------------------------
-;General
-
-;Name and file
-Name "Numpy super installer"
-OutFile "numpy-1.1.0-win32-superpack-python2.4.exe"
-
-;Default installation folder
-InstallDir "$TEMP"
-
-;--------------------------------
-;Interface Settings
-
-!define MUI_ABORTWARNING
-
-;--------------------------------
-;Pages
-
-;!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt"
-;!insertmacro MUI_PAGE_COMPONENTS
-;!insertmacro MUI_PAGE_DIRECTORY
-;!insertmacro MUI_PAGE_INSTFILES
-  
-;!insertmacro MUI_UNPAGE_CONFIRM
-;!insertmacro MUI_UNPAGE_INSTFILES
-  
-;--------------------------------
-;Languages
- 
-!insertmacro MUI_LANGUAGE "English"
-
-;--------------------------------
-;Component Sections
-
-!include 'Sections.nsh'
-!include LogicLib.nsh
-
-Var HasSSE2
-Var HasSSE3
-Var CPUSSE
-
-Section "Core" SecCore
-
-  ;SectionIn RO
-  SetOutPath "$INSTDIR"
-    
-  ;Create uninstaller
-  ;WriteUninstaller "$INSTDIR\Uninstall.exe"
-
-  DetailPrint "Install dir for actual installers is $INSTDIR"
-
-  StrCpy $CPUSSE "0"
-  CpuCaps::hasSSE2
-  Pop $0
-  StrCpy $HasSSE2 $0
-
-  CpuCaps::hasSSE3
-  Pop $0
-  StrCpy $HasSSE3 $0
-
-  ; Debug
-  StrCmp $HasSSE2 "Y" include_sse2 no_include_sse2
-  include_sse2:
-    DetailPrint '"Target CPU handles SSE2"'
-    StrCpy $CPUSSE "2"
-    goto done_sse2
-  no_include_sse2:
-    DetailPrint '"Target CPU does NOT handle SSE2"'
-    goto done_sse2
-  done_sse2:
-
-  StrCmp $HasSSE3 "Y" include_sse3 no_include_sse3
-  include_sse3:
-    DetailPrint '"Target CPU handles SSE3"'
-    StrCpy $CPUSSE "3"
-    goto done_sse3
-  no_include_sse3:
-    DetailPrint '"Target CPU does NOT handle SSE3"'
-    goto done_sse3
-  done_sse3:
-  
-  ClearErrors
-  
-  ; Install files conditionaly on detected cpu 
-  ${Switch} $CPUSSE
-    ${Case} "3"
-      DetailPrint '"Install SSE 3"'
-      File "numpy-1.1.0-sse3.exe"
-      ExecWait '"$INSTDIR\numpy-1.1.0-sse3.exe"'
-      ${Break}
-    ${Case} "2"
-      DetailPrint '"Install SSE 2"'
-      File "numpy-1.1.0-sse2.exe"
-      ExecWait '"$INSTDIR\numpy-1.1.0-sse2.exe"'
-      ${Break}
-   ${Default}
-      DetailPrint '"Install NO SSE"'
-      File "numpy-1.1.0-nosse.exe"
-      ExecWait '"$INSTDIR\numpy-1.1.0-nosse.exe"'
-      ${Break}
-  ${EndSwitch}
-  
-  ; Handle errors when executing installers
-  IfErrors error no_error
-  
-  error:
-    messageBox MB_OK "Executing numpy installer failed" 
-	goto done
-  no_error:
-    goto done
-  done:
-    
-SectionEnd

Copied: branches/1.1.x/tools/win32build/nsis_scripts/numpy-superinstaller-2.4.nsi (from rev 5240, trunk/tools/win32build/nsis_scripts/numpy-superinstaller-2.4.nsi)

Deleted: branches/1.1.x/tools/win32build/nsis_scripts/numpy-superinstaller-2.5.nsi
===================================================================
--- trunk/tools/win32build/nsis_scripts/numpy-superinstaller-2.5.nsi	2008-05-26 11:29:37 UTC (rev 5240)
+++ branches/1.1.x/tools/win32build/nsis_scripts/numpy-superinstaller-2.5.nsi	2008-07-28 02:05:30 UTC (rev 5545)
@@ -1,120 +0,0 @@
-;--------------------------------
-;Include Modern UI
-
-!include "MUI2.nsh"
-
-;SetCompress off ; Useful to disable compression under development
-
-;--------------------------------
-;General
-
-;Name and file
-Name "Numpy super installer"
-OutFile "numpy-1.1.0-win32-superpack-python2.5.exe"
-
-;Default installation folder
-InstallDir "$TEMP"
-
-;--------------------------------
-;Interface Settings
-
-!define MUI_ABORTWARNING
-
-;--------------------------------
-;Pages
-
-;!insertmacro MUI_PAGE_LICENSE "${NSISDIR}\Docs\Modern UI\License.txt"
-;!insertmacro MUI_PAGE_COMPONENTS
-;!insertmacro MUI_PAGE_DIRECTORY
-;!insertmacro MUI_PAGE_INSTFILES
-  
-;!insertmacro MUI_UNPAGE_CONFIRM
-;!insertmacro MUI_UNPAGE_INSTFILES
-  
-;--------------------------------
-;Languages
- 
-!insertmacro MUI_LANGUAGE "English"
-
-;--------------------------------
-;Component Sections
-
-!include 'Sections.nsh'
-!include LogicLib.nsh
-
-Var HasSSE2
-Var HasSSE3
-Var CPUSSE
-
-Section "Core" SecCore
-
-  ;SectionIn RO
-  SetOutPath "$INSTDIR"
-    
-  ;Create uninstaller
-  ;WriteUninstaller "$INSTDIR\Uninstall.exe"
-
-  DetailPrint "Install dir for actual installers is $INSTDIR"
-
-  StrCpy $CPUSSE "0"
-  CpuCaps::hasSSE2
-  Pop $0
-  StrCpy $HasSSE2 $0
-
-  CpuCaps::hasSSE3
-  Pop $0
-  StrCpy $HasSSE3 $0
-
-  ; Debug
-  StrCmp $HasSSE2 "Y" include_sse2 no_include_sse2
-  include_sse2:
-    DetailPrint '"Target CPU handles SSE2"'
-    StrCpy $CPUSSE "2"
-    goto done_sse2
-  no_include_sse2:
-    DetailPrint '"Target CPU does NOT handle SSE2"'
-    goto done_sse2
-  done_sse2:
-
-  StrCmp $HasSSE3 "Y" include_sse3 no_include_sse3
-  include_sse3:
-    DetailPrint '"Target CPU handles SSE3"'
-    StrCpy $CPUSSE "3"
-    goto done_sse3
-  no_include_sse3:
-    DetailPrint '"Target CPU does NOT handle SSE3"'
-    goto done_sse3
-  done_sse3:
-  
-  ClearErrors
-  
-  ; Install files conditionaly on detected cpu 
-  ${Switch} $CPUSSE
-    ${Case} "3"
-      DetailPrint '"Install SSE 3"'
-      File "numpy-1.1.0-sse3.exe"
-      ExecWait '"$INSTDIR\numpy-1.1.0-sse3.exe"'
-      ${Break}
-    ${Case} "2"
-      DetailPrint '"Install SSE 2"'
-      File "numpy-1.1.0-sse2.exe"
-      ExecWait '"$INSTDIR\numpy-1.1.0-sse2.exe"'
-      ${Break}
-   ${Default}
-      DetailPrint '"Install NO SSE"'
-      File "numpy-1.1.0-nosse.exe"
-      ExecWait '"$INSTDIR\numpy-1.1.0-nosse.exe"'
-      ${Break}
-  ${EndSwitch}
-  
-  ; Handle errors when executing installers
-  IfErrors error no_error
-  
-  error:
-    messageBox MB_OK "Executing numpy installer failed" 
-	goto done
-  no_error:
-    goto done
-  done:
-    
-SectionEnd

Copied: branches/1.1.x/tools/win32build/nsis_scripts/numpy-superinstaller-2.5.nsi (from rev 5240, trunk/tools/win32build/nsis_scripts/numpy-superinstaller-2.5.nsi)




More information about the Numpy-svn mailing list