├── files ├── basegame │ ├── f0.pdb │ ├── test │ ├── d0.pdb │ ├── d1.pdb │ ├── EBOOT.PBP │ ├── body.bin │ ├── head.bin │ ├── icon.png │ ├── stat.bin │ ├── tail.bin │ └── work.bin ├── PBOOT.PBP ├── bg0.png ├── icon0.dds ├── startup.png ├── releases │ ├── adrenaline │ │ ├── adrenaline.skprx │ │ └── adrenaline.suprx │ ├── adrenaline_v2 │ │ ├── adrenaline.skprx │ │ └── adrenaline.suprx │ ├── adrenaline_v3 │ │ ├── adrenaline.skprx │ │ ├── adrenaline.suprx │ │ └── usbdevice.skprx │ ├── adrenaline_v4 │ │ ├── adrenaline.skprx │ │ ├── adrenaline.suprx │ │ └── usbdevice.skprx │ ├── adrenaline_fix2 │ │ ├── adrenaline.skprx │ │ └── adrenaline.suprx │ ├── adrenaline_v3.1 │ │ ├── adrenaline.skprx │ │ ├── adrenaline.suprx │ │ └── usbdevice.skprx │ └── adrenaline_v3_fix │ │ ├── adrenaline.skprx │ │ ├── adrenaline.suprx │ │ └── usbdevice.skprx └── updatehistory.txt ├── livearea ├── bg0.png ├── icon0.png ├── startup.png ├── template.xml └── changeinfo.xml ├── materials ├── button_pad.png ├── button_circle.png └── button_cross.png ├── sqlite-3.6.23.1 ├── sqlite3.pc.in ├── sqlite3.pc ├── Makefile.am ├── README ├── configure.ac ├── sqlite3.1 ├── INSTALL ├── install-sh ├── missing ├── depcomp ├── sqlite3ext.h └── Makefile.in ├── README.md ├── init.h ├── graphics.h ├── file.h ├── init.c ├── graphics.c ├── main.h ├── Makefile ├── vita_sqlite.c ├── font.c └── file.c /files/basegame/f0.pdb: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /files/basegame/test: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /files/PBOOT.PBP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/PBOOT.PBP -------------------------------------------------------------------------------- /files/bg0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/bg0.png -------------------------------------------------------------------------------- /files/icon0.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/icon0.dds -------------------------------------------------------------------------------- /files/startup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/startup.png -------------------------------------------------------------------------------- /livearea/bg0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/livearea/bg0.png -------------------------------------------------------------------------------- /livearea/icon0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/livearea/icon0.png -------------------------------------------------------------------------------- /livearea/startup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/livearea/startup.png -------------------------------------------------------------------------------- /files/basegame/d0.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/basegame/d0.pdb -------------------------------------------------------------------------------- /files/basegame/d1.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/basegame/d1.pdb -------------------------------------------------------------------------------- /files/basegame/EBOOT.PBP: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/basegame/EBOOT.PBP -------------------------------------------------------------------------------- /files/basegame/body.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/basegame/body.bin -------------------------------------------------------------------------------- /files/basegame/head.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/basegame/head.bin -------------------------------------------------------------------------------- /files/basegame/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/basegame/icon.png -------------------------------------------------------------------------------- /files/basegame/stat.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/basegame/stat.bin -------------------------------------------------------------------------------- /files/basegame/tail.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/basegame/tail.bin -------------------------------------------------------------------------------- /files/basegame/work.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/basegame/work.bin -------------------------------------------------------------------------------- /materials/button_pad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/materials/button_pad.png -------------------------------------------------------------------------------- /materials/button_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/materials/button_circle.png -------------------------------------------------------------------------------- /materials/button_cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/materials/button_cross.png -------------------------------------------------------------------------------- /files/releases/adrenaline/adrenaline.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline/adrenaline.skprx -------------------------------------------------------------------------------- /files/releases/adrenaline/adrenaline.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline/adrenaline.suprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v2/adrenaline.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v2/adrenaline.skprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v2/adrenaline.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v2/adrenaline.suprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v3/adrenaline.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v3/adrenaline.skprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v3/adrenaline.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v3/adrenaline.suprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v3/usbdevice.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v3/usbdevice.skprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v4/adrenaline.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v4/adrenaline.skprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v4/adrenaline.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v4/adrenaline.suprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v4/usbdevice.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v4/usbdevice.skprx -------------------------------------------------------------------------------- /files/releases/adrenaline_fix2/adrenaline.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_fix2/adrenaline.skprx -------------------------------------------------------------------------------- /files/releases/adrenaline_fix2/adrenaline.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_fix2/adrenaline.suprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v3.1/adrenaline.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v3.1/adrenaline.skprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v3.1/adrenaline.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v3.1/adrenaline.suprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v3.1/usbdevice.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v3.1/usbdevice.skprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v3_fix/adrenaline.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v3_fix/adrenaline.skprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v3_fix/adrenaline.suprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v3_fix/adrenaline.suprx -------------------------------------------------------------------------------- /files/releases/adrenaline_v3_fix/usbdevice.skprx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Freakler/vita-AdrenalineEasyInstaller/HEAD/files/releases/adrenaline_v3_fix/usbdevice.skprx -------------------------------------------------------------------------------- /sqlite-3.6.23.1/sqlite3.pc.in: -------------------------------------------------------------------------------- 1 | # Package Information for pkg-config 2 | 3 | prefix=@prefix@ 4 | exec_prefix=@exec_prefix@ 5 | libdir=@libdir@ 6 | includedir=@includedir@ 7 | 8 | Name: SQLite 9 | Description: SQL database engine 10 | Version: @PACKAGE_VERSION@ 11 | Libs: -L${libdir} -lsqlite3 12 | Libs.private: @LIBS@ 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /sqlite-3.6.23.1/sqlite3.pc: -------------------------------------------------------------------------------- 1 | # Package Information for pkg-config 2 | 3 | prefix=/usr/local 4 | exec_prefix=${prefix} 5 | libdir=${exec_prefix}/lib 6 | includedir=${prefix}/include 7 | 8 | Name: SQLite 9 | Description: SQL database engine 10 | Version: 3.6.23.1 11 | Libs: -L${libdir} -lsqlite3 12 | Libs.private: -ldl -lpthread 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # AdrenalineEasyInstaller 2 | An EasyInstaller for the 6.61 Adrenaline eCFW by TheFloW 3 | 4 | *You can install and switch between all versions from 1.0 up to 5.1 that are in plugin format!* 5 | 6 | 7 | **!Dont use this EasyInstaller in combination with the USB feature on PSTV / or custom memory cards!** 8 | 9 | **Thanks to:** TheFloW, Xerpi, Yoti, Chihiro, SMOKE & of course Team Molecule! :) 10 | -------------------------------------------------------------------------------- /sqlite-3.6.23.1/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE 3 | 4 | lib_LTLIBRARIES = libsqlite3.la 5 | libsqlite3_la_SOURCES = sqlite3.c 6 | libsqlite3_la_LDFLAGS = -no-undefined -version-info 8:6:8 7 | 8 | bin_PROGRAMS = sqlite3 9 | sqlite3_SOURCES = shell.c sqlite3.h 10 | sqlite3_LDADD = $(top_builddir)/libsqlite3.la @READLINE_LIBS@ 11 | sqlite3_DEPENDENCIES = $(top_builddir)/libsqlite3.la 12 | 13 | include_HEADERS = sqlite3.h sqlite3ext.h 14 | 15 | EXTRA_DIST = sqlite3.pc sqlite3.1 16 | pkgconfigdir = ${libdir}/pkgconfig 17 | pkgconfig_DATA = sqlite3.pc 18 | 19 | man_MANS = sqlite3.1 20 | -------------------------------------------------------------------------------- /init.h: -------------------------------------------------------------------------------- 1 | #ifndef __INIT_H__ 2 | #define __INIT_H__ 3 | 4 | #include //SceINT etc 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | #include //buttons 11 | #include 12 | #include //memset 13 | #include 14 | 15 | #include 16 | #include 17 | #include 18 | #include //for load net module 19 | 20 | #include 21 | 22 | extern int language; 23 | extern char username; 24 | extern int SCE_CTRL_ENTER, SCE_CTRL_CANCEL; 25 | 26 | void netInit(); 27 | void httpInit(); 28 | 29 | void initSceAppUtil(); 30 | void finishSceAppUtil(); 31 | 32 | void initVita2DLib(); 33 | void closeVita2DLib(); 34 | 35 | int readInEnterButton(); 36 | char *getUsername(); 37 | int getSystemLanguageCode(); 38 | 39 | #endif -------------------------------------------------------------------------------- /livearea/template.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | bg0.png 6 | 7 | 8 | 9 | startup.png 10 | 11 | 12 | 13 | 14 | 15 | 6.61 Adrenaline 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | Easy-Installer 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | v1.15 32 | 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /graphics.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | typedef unsigned char u8; 4 | typedef unsigned u32; 5 | typedef u32 Color; 6 | 7 | // allocates memory for framebuffer and initializes it 8 | void psvDebugScreenInit(); 9 | 10 | // clears screen with a given color 11 | void psvDebugScreenClear(int bg_color); 12 | 13 | // printf to the screen 14 | void psvDebugScreenPrintf(const char *format, ...); 15 | 16 | // set foreground (text) color 17 | Color psvDebugScreenSetFgColor(Color color); 18 | 19 | // set background color 20 | Color psvDebugScreenSetBgColor(Color color); 21 | 22 | // printf to the screen with color 23 | void print_color(const char *text, Color color); 24 | 25 | void *psvDebugScreenGetVram(); 26 | int psvDebugScreenGetX(); 27 | int psvDebugScreenGetY(); 28 | void psvDebugScreenSetXY(); 29 | 30 | enum { 31 | RED = 0xFF0000FF, 32 | GREEN = 0xFF00FF00, 33 | BLUE = 0xFFFF0000, 34 | 35 | CYAN = 0xFFFFFF00, 36 | MAGENTA = 0xFFFF00FF, 37 | YELLOW = 0xFF00FFFF, 38 | 39 | AZURE = 0xFFFF7F00, 40 | VIOLET = 0xFFFF007F, 41 | ORANGE = 0xFF007FFF, 42 | 43 | GREY = 0xFF808080, 44 | WHITE = 0xFFFFFFFF, 45 | BLACK = 0xFF000000, 46 | }; 47 | -------------------------------------------------------------------------------- /sqlite-3.6.23.1/README: -------------------------------------------------------------------------------- 1 | 2 | This package contains: 3 | 4 | * the SQLite library amalgamation (single file) source code distribution, 5 | * the shell.c file used to build the sqlite3 shell too, and 6 | * the sqlite3.h and sqlite3ext.h header files required to link programs 7 | and sqlite extensions against the installed libary. 8 | * autoconf/automake installation infrastucture. 9 | 10 | The generic installation instructions for autoconf/automake are found 11 | in the INSTALL file. 12 | 13 | The following SQLite specific boolean options are supported: 14 | 15 | --enable-readline use readline in shell tool [default=yes] 16 | --enable-threadsafe build a thread-safe library [default=yes] 17 | --enable-dynamic-extensions support loadable extensions [default=yes] 18 | 19 | The default value for the CFLAGS variable (options passed to the C 20 | compiler) includes debugging symbols in the build, resulting in larger 21 | binaries than are necessary. Override it on the configure command 22 | line like this: 23 | 24 | $ CFLAGS="-Os" ./configure 25 | 26 | to produce a smaller installation footprint. 27 | 28 | Other SQLite compilation parameters can also be set using CFLAGS. For 29 | example: 30 | 31 | $ CFLAGS="-Os -DSQLITE_OMIT_TRIGGERS" ./configure 32 | 33 | -------------------------------------------------------------------------------- /file.h: -------------------------------------------------------------------------------- 1 | #ifndef __FILE_H__ 2 | #define __FILE_H__ 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | #include 9 | #include 10 | 11 | #include 12 | #include 13 | #include 14 | 15 | #define printf psvDebugScreenPrintf 16 | 17 | #define TRANSFER_SIZE 64 * 1024 //64kb 18 | #define MAX_PATH_LENGTH 1024 19 | 20 | 21 | char PSP_GAME_ID[32]; 22 | 23 | struct PSPContent { 24 | char titleID[16]; //TITLE_ID 25 | char title[128]; //TITLE 26 | }; 27 | struct PSPContent content_array[256]; //array with infos 28 | 29 | 30 | char *getEbootTitle(char *src_path); 31 | 32 | int doesFileExist(const char* path); 33 | int doesDirExist(const char* path); 34 | 35 | int copyFile(char *src_path, char *dst_path); 36 | int getFileSize(const char *file); 37 | int createEmptyFile(char *path); 38 | 39 | int makePath(const char *dir); 40 | int removePath(char *path); 41 | 42 | int download_file(const char *src, const char *dst); 43 | 44 | void get_id_of_psp_game_that_adrenaline_is_installed_to(char *taiconfig, char *path); 45 | int write_adrenaline_to_config(char *taiconfig, char *path, char *id); 46 | int delete_adrenaline_from_config(char *taiconfig, char *path, char *id); 47 | int check_for_psp_content(char *path); 48 | 49 | void trigger_update_database(); 50 | void trigger_rebuild_database(); 51 | 52 | int writeChangeinfo(const char* id); 53 | int checkUnsafeHomebrew(); 54 | char *getRealFirmwareVersion(int arg); 55 | 56 | char *read_installed_adrenaline_version(char *path); 57 | int write_installed_adrenaline_version(char *path, char *arg); 58 | #endif -------------------------------------------------------------------------------- /init.c: -------------------------------------------------------------------------------- 1 | #include "init.h" 2 | 3 | extern unsigned char _binary_materials_button_pad_png_start; 4 | extern unsigned char _binary_materials_button_cross_png_start; 5 | extern unsigned char _binary_materials_button_circle_png_start; 6 | 7 | vita2d_pgf *pgf = NULL; 8 | 9 | vita2d_texture *button_pad = NULL; 10 | vita2d_texture *button_enter = NULL; 11 | vita2d_texture *button_cancel = NULL; 12 | 13 | int SCE_CTRL_ENTER = SCE_CTRL_CROSS; 14 | int SCE_CTRL_CANCEL = SCE_CTRL_CIRCLE; 15 | 16 | /// Vita2DLib ///////////////////////////////////////////////////////////////////////////////////////////// 17 | 18 | void initVita2DLib() { 19 | vita2d_init(); 20 | pgf = vita2d_load_default_pgf(); 21 | 22 | button_pad = vita2d_load_PNG_buffer(&_binary_materials_button_pad_png_start); 23 | 24 | if ( SCE_CTRL_ENTER == SCE_CTRL_CROSS ) { 25 | button_enter = vita2d_load_PNG_buffer(&_binary_materials_button_cross_png_start); 26 | button_cancel = vita2d_load_PNG_buffer(&_binary_materials_button_circle_png_start); 27 | } else { 28 | button_enter = vita2d_load_PNG_buffer(&_binary_materials_button_circle_png_start); 29 | button_cancel = vita2d_load_PNG_buffer(&_binary_materials_button_cross_png_start); 30 | } 31 | } 32 | 33 | 34 | void closeVita2DLib() { 35 | vita2d_free_texture(button_pad); 36 | vita2d_free_texture(button_enter); 37 | vita2d_free_texture(button_cancel); 38 | 39 | vita2d_free_pgf(pgf); 40 | vita2d_fini(); 41 | } 42 | 43 | 44 | 45 | 46 | /// NET ///////////////////////////////////////////////////////////////////////////////////////////// 47 | 48 | void netInit() { 49 | sceSysmoduleLoadModule(SCE_SYSMODULE_NET); 50 | 51 | SceNetInitParam netInitParam; 52 | int size = 1*1024*1024; 53 | netInitParam.memory = malloc(size); 54 | netInitParam.size = size; 55 | netInitParam.flags = 0; 56 | sceNetInit(&netInitParam); 57 | 58 | sceNetCtlInit(); 59 | } 60 | 61 | void httpInit() { 62 | sceSysmoduleLoadModule(SCE_SYSMODULE_HTTP); 63 | sceHttpInit(1*1024*1024); 64 | } 65 | 66 | 67 | 68 | 69 | /// SceAppUtil ///////////////////////////////////////////////////////////////////////////////////////////// 70 | 71 | void initSceAppUtil() { 72 | SceAppUtilInitParam init_param; 73 | SceAppUtilBootParam boot_param; 74 | memset(&init_param, 0, sizeof(SceAppUtilInitParam)); 75 | memset(&boot_param, 0, sizeof(SceAppUtilBootParam)); 76 | sceAppUtilInit(&init_param, &boot_param); 77 | 78 | } 79 | 80 | void finishSceAppUtil() { 81 | sceAppUtilShutdown(); 82 | } 83 | 84 | 85 | 86 | 87 | int readInEnterButton() { 88 | int enter_button = 0; 89 | sceAppUtilSystemParamGetInt(SCE_SYSTEM_PARAM_ID_ENTER_BUTTON, &enter_button); 90 | 91 | if (enter_button == SCE_SYSTEM_PARAM_ENTER_BUTTON_CIRCLE) { //switch butons 92 | SCE_CTRL_ENTER = SCE_CTRL_CIRCLE; 93 | SCE_CTRL_CANCEL = SCE_CTRL_CROSS; 94 | } 95 | 96 | 97 | return enter_button; 98 | } 99 | 100 | char *getUsername() { 101 | static SceChar8 username[SCE_SYSTEM_PARAM_USERNAME_MAXSIZE]; 102 | sceAppUtilSystemParamGetString(SCE_SYSTEM_PARAM_ID_USERNAME, username, SCE_SYSTEM_PARAM_USERNAME_MAXSIZE); 103 | 104 | return (char *)username; 105 | } 106 | 107 | int getSystemLanguageCode() { 108 | int systemlanguage = 0; 109 | sceAppUtilSystemParamGetInt(SCE_SYSTEM_PARAM_ID_LANG, &systemlanguage); 110 | 111 | return systemlanguage; 112 | } -------------------------------------------------------------------------------- /livearea/changeinfo.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | ]]> 7 | 8 | 9 | 11 | - merged additional checks by Yoti
12 | - adjusted debug text length
13 | - code cleaned & bugs fixed
14 | ]]> 15 |
16 | 17 | 19 | - changed method to update database (addressed to bugs reported)
20 | - added another safety dialog before actually installing Adrenaline
21 | - added more message screens
22 | - added option to install a small basegame (thx to CelesteBlue for the files)
23 | - added option to delete adrenaline flash files
24 | - added option to delete 661 Update file
25 | - bugs fixed
26 | ]]> 27 |
28 | 29 | 31 | - added update history info to livearea
32 | - while installing the Home button is now blocked
33 | - fixed a bug with wrongly formatted tai-config files
34 | ]]> 35 |
36 | 37 | 39 | ]]> 40 | 41 | 42 | 44 | - restructured the menu because of all new options
45 | - you can now up/downgrade without rebooting (with same basegame)
46 | - the used basegame for Adrenaline will show up green in selection menu
47 | - added Advanced LiveArea Theming Option (app.db)
48 | - added view Adrenaline Update-History as option
49 | - added firmware check warning for future hacks
50 | - added check for valid 661.PBP file (if not it will be deleted)
51 | - added check for existing PBOOTs in basegames
52 | - added check for changeinfo.xml installation
53 | - typical CFW files & folders will now be created automatically
54 | - added option to display taiHEN config.txt
55 | - added option to reload taiHEN config.txt
56 | - adjusted Bubble Name and livearea
57 | - removed blocking of PSButton again
58 | - removed unnecessary files & code
59 | ]]> 60 |
61 | 62 | 64 | - removed resetting of installed flash files when up/downgrading as its not needed
65 | ]]> 66 |
67 | 68 | 70 | ]]> 71 | 72 | 73 | 75 | - added option to delete SaveStates
76 | ]]> 77 |
78 | 79 | 81 | - added unsafe hombrew check
82 | ]]> 83 |
84 | 85 | 87 | ]]> 88 | 89 | 90 | 92 | ]]> 93 | 94 | 95 | 97 | - removed ms0:ISO/video/ folder creation
98 | ]]> 99 |
100 | 101 | 103 | ]]> 104 | 105 |
106 | -------------------------------------------------------------------------------- /sqlite-3.6.23.1/configure.ac: -------------------------------------------------------------------------------- 1 | 2 | #----------------------------------------------------------------------- 3 | # Supports the following non-standard switches. 4 | # 5 | # --enable-threadsafe 6 | # --enable-readline 7 | # --enable-dynamic-extensions 8 | # 9 | 10 | AC_PREREQ(2.61) 11 | AC_INIT(sqlite, 3.6.23.1, http://www.sqlite.org) 12 | AC_CONFIG_SRCDIR([sqlite3.c]) 13 | 14 | # Use automake. 15 | AM_INIT_AUTOMAKE([foreign]) 16 | 17 | AC_SYS_LARGEFILE 18 | 19 | # Check for required programs. 20 | AC_PROG_CC 21 | AC_PROG_RANLIB 22 | AC_PROG_LIBTOOL 23 | 24 | # Check for library functions that SQLite can optionally use. 25 | AC_CHECK_FUNCS([fdatasync usleep fullfsync localtime_r gmtime_r]) 26 | 27 | AC_CONFIG_FILES([Makefile sqlite3.pc]) 28 | AC_SUBST(BUILD_CFLAGS) 29 | 30 | #----------------------------------------------------------------------- 31 | # --enable-readline 32 | # 33 | AC_ARG_ENABLE(readline, [AS_HELP_STRING( 34 | [--enable-readline], 35 | [use readline in shell tool (yes, no) [default=yes]])], 36 | [], [enable_readline=yes]) 37 | if test x"$enable_readline" != xno ; then 38 | sLIBS=$LIBS 39 | LIBS="" 40 | AC_SEARCH_LIBS(tgetent, curses, [], []) 41 | AC_SEARCH_LIBS(readline, readline, [], [enable_readline=no]) 42 | AC_CHECK_FUNCS(readline, [], []) 43 | READLINE_LIBS=$LIBS 44 | LIBS=$sLIBS 45 | fi 46 | AC_SUBST(READLINE_LIBS) 47 | #----------------------------------------------------------------------- 48 | 49 | #----------------------------------------------------------------------- 50 | # --enable-threadsafe 51 | # 52 | AC_ARG_ENABLE(threadsafe, [AS_HELP_STRING( 53 | [--enable-threadsafe], [build a thread-safe library [default=yes]])], 54 | [], [enable_threadsafe=yes]) 55 | THREADSAFE_FLAGS=-DSQLITE_THREADSAFE=0 56 | if test x"$enable_threadsafe" != "xno"; then 57 | THREADSAFE_FLAGS=-DSQLITE_THREADSAFE=1 58 | AC_SEARCH_LIBS(pthread_create, pthread) 59 | fi 60 | AC_SUBST(THREADSAFE_FLAGS) 61 | #----------------------------------------------------------------------- 62 | 63 | #----------------------------------------------------------------------- 64 | # --enable-dynamic-extensions 65 | # 66 | AC_ARG_ENABLE(dynamic-extensions, [AS_HELP_STRING( 67 | [--enable-dynamic-extensions], [support loadable extensions [default=yes]])], 68 | [], [enable_dynamic_extensions=yes]) 69 | if test x"$enable_dynamic_extensions" != "xno"; then 70 | AC_SEARCH_LIBS(dlopen, dl) 71 | else 72 | DYNAMIC_EXTENSION_FLAGS=-DSQLITE_OMIT_LOAD_EXTENSION=1 73 | fi 74 | AC_MSG_CHECKING([for whether to support dynamic extensions]) 75 | AC_MSG_RESULT($enable_dynamic_extensions) 76 | AC_SUBST(DYNAMIC_EXTENSION_FLAGS) 77 | #----------------------------------------------------------------------- 78 | 79 | #----------------------------------------------------------------------- 80 | # UPDATE: Maybe it's better if users just set CFLAGS before invoking 81 | # configure. This option doesn't really add much... 82 | # 83 | # --enable-tempstore 84 | # 85 | # AC_ARG_ENABLE(tempstore, [AS_HELP_STRING( 86 | # [--enable-tempstore], 87 | # [in-memory temporary tables (never, no, yes, always) [default=no]])], 88 | # [], [enable_tempstore=no]) 89 | # AC_MSG_CHECKING([for whether or not to store temp tables in-memory]) 90 | # case "$enable_tempstore" in 91 | # never ) TEMP_STORE=0 ;; 92 | # no ) TEMP_STORE=1 ;; 93 | # always ) TEMP_STORE=3 ;; 94 | # yes ) TEMP_STORE=3 ;; 95 | # * ) 96 | # TEMP_STORE=1 97 | # enable_tempstore=yes 98 | # ;; 99 | # esac 100 | # AC_MSG_RESULT($enable_tempstore) 101 | # AC_SUBST(TEMP_STORE) 102 | #----------------------------------------------------------------------- 103 | 104 | AC_OUTPUT 105 | -------------------------------------------------------------------------------- /files/updatehistory.txt: -------------------------------------------------------------------------------- 1 | - Changelog v5.1 - [adrenaline_v5.1.zip] (2017-06-21) 2 | - Added ability to skip adrenaline boot logo. 3 | - Added message for original filter. 4 | - Fixed bug where payloadex was not updated and caused some bugs. 5 | - Fixed '20000006' bug on PS TV. Network update will work on PS TV in the future. 6 | - Changed CPU clock back to 333 MHz. 7 | 8 | - Changelog v5 - [adrenaline_v5.zip] (2017-06-05) 9 | - Added 'Hide DLC's in game menu' functionality. 10 | - Readded 'Original' graphics filtering, since PS1 games have got 11 | framedrops using custom filters. 12 | - Fixed corrupted icons bug that was introduced in the previous update. 13 | - Fixed bug where the framebuffer was corrupted after loading savestate. 14 | - Adrenaline icon is now hidden in game menu. 15 | 16 | - Changelog v4.2 - [adrenaline_v4.2.zip] (2017-06-03) 17 | - Added support for ISO sorting using 'Game Categories Lite' plugin. 18 | - Fixed compatiblity with 'Kingdom Hearts: Birth by Sleep' english patch. 19 | 20 | - Changelog v4.1 - [adrenaline_v4.1.zip] (2017-05-25) 21 | - Fixed bug where holding R trigger while launching Adrenaline didn't open the 22 | recovery menu. 23 | - Fixed msfs truncation bug that caused savedata corruption for Little Big Planet 24 | and maybe other games. 25 | - Fixed wrong scale of PS1 games on PS TV. 26 | 27 | - Changelog v4 - [adrenaline_v4.zip] (2017-04-18) 28 | - Added custom graphics filtering support for PS1 games. 29 | - Added screen mode adjustment for PS1 games. 30 | - Added screenshot support in PS1 games. 31 | - Added network update feature for future updates. 32 | - Fixed a bug in msfs driver that caused weird behaviour in XMB after resuming from 33 | standby. 34 | - Removed 'Official' graphics filtering in order to support the features mentioned above. 35 | 36 | - Changelog v3.1 - [adrenaline_v3.1.zip] (2017-04-17) 37 | - Added support for cwcheat in PS1 games. 38 | - Fixed sound problems after exiting a PS1 game. 39 | - Fixed 'Please wait...' bug in some games. 40 | - Fixed problem where mounting ur0: as USB device would cause problems in livearea. 41 | 42 | - Changelog v3 fix - [adrenaline_v3_fix.zip] (2017-04-16) 43 | - Fixed bug where 'Cannot find application' would show instead of returning to livearea. 44 | - Fixed bug where you couldn't access the Adrenaline Menu after enabling/disabling wifi. 45 | 46 | - Changelog v3 - [adrenaline_v3.zip] (2017-04-15) 47 | - Added ability to launch PS1 games from XMB and play them with full sound. 48 | - Added ability to save and load states using the 'States' tab in the Adrenaline menu. 49 | - Added ability to connect USB in XMB & added 'Toggle USB' option to recovery menu. 50 | - Added ability to return to livearea by double tapping the PS button. 51 | - Added Adrenaline startup image designed by Freakler. 52 | - Added option to force high memory layout. For 'The Elder Scrolls Travels: Oblivion' 53 | - Added option to execute 'BOOT.BIN' in UMD/ISO. For 'Saints Row: Undercover' Demo. 54 | - Added correct enter and cancel buttons assignment. 55 | - Fixed volatile memory allocation bug that made 'Star Wars: The Force Unleashed', 56 | 'Tony Hawk's Project 8' and maybe more games crashing. 57 | - Fixed bug that was introduced in v2 which caused some games to crashed at PMF 58 | sequences. 59 | - Fixed NoDrm engine bug where fan transl. games couldn't load PGD decrypted files. 60 | - Fixed msfs directory filter bug that caused some games not to recognize savedatas. 61 | - Fixed compatiblity of base games, any game should now be able to use Adrenaline to 62 | the fullest. 63 | 64 | 65 | - Changelog v2 - [adrenaline_v2.zip] (2017-04-02) 66 | - Added 64MB RAM support for homebrews. 67 | - Added ability to use the 'ur0:' partition as Memory Stick. 68 | - Added Advanced AA filter (disable 'Smooth Graphics' for that filter). 69 | - Added ability to change smooth graphics (GPU internal bilinear filter). 70 | - Added ability to change screen size (2.0x, 1.75x, 1.5x, 1.25x, 1.0x). 71 | - Fixed sound issue in 'MotorStorm' and some other games. 72 | - Fixed bug where 'ms0:/MUSIC' and 'ms0:/PICTURE' were not found in XMB. 73 | - Fixed bug where changing options in the official settings menu didn't have any effect. 74 | 75 | 76 | - Changelog v1_fix2 - [adrenaline_fix2.zip] (2016-11-18) 77 | - Fixed 661.PBP bug 78 | - Fixed C1-2858-3 error (Minis are now compatible) 79 | 80 | 81 | - Changelog v1 - [adrenaline.zip] (2016-11-17) 82 | - initial release -------------------------------------------------------------------------------- /graphics.c: -------------------------------------------------------------------------------- 1 | #include "graphics.h" 2 | 3 | #include 4 | #include 5 | #include 6 | 7 | #define SCE_DISPLAY_UPDATETIMING_NEXTVSYNC SCE_DISPLAY_SETBUF_NEXTFRAME 8 | #include 9 | #include 10 | #include 11 | 12 | enum { 13 | SCREEN_WIDTH = 960, 14 | SCREEN_HEIGHT = 544, 15 | LINE_SIZE = 960, 16 | FRAMEBUFFER_SIZE = 2 * 1024 * 1024, 17 | FRAMEBUFFER_ALIGNMENT = 256 * 1024 18 | }; 19 | 20 | typedef union 21 | { 22 | int rgba; 23 | struct 24 | { 25 | char r; 26 | char g; 27 | char b; 28 | char a; 29 | } c; 30 | } color_t; 31 | 32 | extern u8 msx[]; 33 | void* g_vram_base; 34 | static int gX = 0; 35 | static int gY = 0; 36 | 37 | static Color g_fg_color; 38 | static Color g_bg_color; 39 | 40 | static Color* getVramDisplayBuffer() 41 | { 42 | Color* vram = (Color*) g_vram_base; 43 | return vram; 44 | } 45 | 46 | void *psvDebugScreenGetVram() { 47 | return g_vram_base; 48 | } 49 | 50 | int psvDebugScreenGetX() { 51 | return gX; 52 | } 53 | 54 | int psvDebugScreenGetY() { 55 | return gY; 56 | } 57 | 58 | void psvDebugScreenSetXY(int x, int y) { 59 | gX = x; 60 | gY = y; 61 | } 62 | 63 | // #define LOG(args...) vita_logf (__FILE__, __LINE__, args) ///< Write a log entry 64 | 65 | int g_log_mutex; 66 | 67 | void psvDebugScreenInit() { 68 | g_log_mutex = sceKernelCreateMutex("log_mutex", 0, 0, NULL); 69 | 70 | SceKernelAllocMemBlockOpt opt = { 0 }; 71 | opt.size = sizeof(opt); 72 | opt.attr = 0x00000004; 73 | opt.alignment = FRAMEBUFFER_ALIGNMENT; 74 | SceUID displayblock = sceKernelAllocMemBlock("display", SCE_KERNEL_MEMBLOCK_TYPE_USER_CDRAM_RW, FRAMEBUFFER_SIZE, &opt); 75 | printf("displayblock: 0x%08x", displayblock); 76 | void *base; 77 | sceKernelGetMemBlockBase(displayblock, &base); 78 | // LOG("base: 0x%08x", base); 79 | 80 | SceDisplayFrameBuf framebuf = { 0 }; 81 | framebuf.size = sizeof(framebuf); 82 | framebuf.base = base; 83 | framebuf.pitch = SCREEN_WIDTH; 84 | framebuf.pixelformat = SCE_DISPLAY_PIXELFORMAT_A8B8G8R8; 85 | framebuf.width = SCREEN_WIDTH; 86 | framebuf.height = SCREEN_HEIGHT; 87 | 88 | g_vram_base = base; 89 | 90 | sceDisplaySetFrameBuf(&framebuf, SCE_DISPLAY_UPDATETIMING_NEXTVSYNC); 91 | 92 | g_fg_color = 0xFFFFFFFF; 93 | g_bg_color = 0x00000000; 94 | } 95 | 96 | void psvDebugScreenClear(int bg_color) 97 | { 98 | gX = gY = 0; 99 | int i; 100 | color_t *pixel = (color_t *)getVramDisplayBuffer(); 101 | for(i = 0; i < SCREEN_WIDTH * SCREEN_HEIGHT; i++) { 102 | pixel->rgba = bg_color; 103 | pixel++; 104 | } 105 | } 106 | 107 | static void printTextScreen(const char * text) 108 | { 109 | int c, i, j, l; 110 | u8 *font; 111 | Color *vram_ptr; 112 | Color *vram; 113 | 114 | for (c = 0; c < strlen(text); c++) { 115 | if (gX + 16 > SCREEN_WIDTH) { 116 | gY += 16; 117 | gX = 0; 118 | } 119 | if (gY + 16 > SCREEN_HEIGHT) { 120 | gY = 0; 121 | psvDebugScreenClear(g_bg_color); 122 | } 123 | char ch = text[c]; 124 | if (ch == '\n') { 125 | gX = 0; 126 | gY += 16; 127 | continue; 128 | } else if (ch == '\r') { 129 | gX = 0; 130 | continue; 131 | } 132 | 133 | vram = getVramDisplayBuffer() + gX + gY * LINE_SIZE; 134 | 135 | font = &msx[ (int)ch * 8]; 136 | for (i = l = 0; i < 8; i++, l += 8, font++) { 137 | vram_ptr = vram; 138 | for (j = 0; j < 8; j++) { 139 | if ((*font & (128 >> j))) { 140 | *(uint32_t *)(vram_ptr) = g_fg_color; 141 | *(uint32_t *)(vram_ptr + 1) = g_fg_color; 142 | *(uint32_t *)(vram_ptr + LINE_SIZE) = g_fg_color; 143 | *(uint32_t *)(vram_ptr + LINE_SIZE + 1) = g_fg_color; 144 | } else { 145 | *(uint32_t *)(vram_ptr) = g_bg_color; 146 | *(uint32_t *)(vram_ptr + 1) = g_bg_color; 147 | *(uint32_t *)(vram_ptr + LINE_SIZE) = g_bg_color; 148 | *(uint32_t *)(vram_ptr + LINE_SIZE + 1) = g_bg_color; 149 | } 150 | vram_ptr += 2; 151 | } 152 | vram += 2 * LINE_SIZE; 153 | } 154 | gX += 16; 155 | } 156 | } 157 | 158 | void psvDebugScreenPrintf(const char *format, ...) { 159 | char buf[1024]; 160 | 161 | sceKernelLockMutex(g_log_mutex, 1, NULL); 162 | 163 | va_list opt; 164 | va_start(opt, format); 165 | vsnprintf(buf, sizeof(buf), format, opt); 166 | printTextScreen(buf); 167 | va_end(opt); 168 | 169 | sceKernelUnlockMutex(g_log_mutex, 1); 170 | } 171 | 172 | Color psvDebugScreenSetFgColor(Color color) { 173 | Color prev_color = g_fg_color; 174 | g_fg_color = color; 175 | return prev_color; 176 | } 177 | 178 | Color psvDebugScreenSetBgColor(Color color) { 179 | Color prev_color = g_bg_color; 180 | g_bg_color = color; 181 | return prev_color; 182 | } 183 | 184 | void print_color(const char *text, Color color) { 185 | psvDebugScreenSetFgColor(color); 186 | psvDebugScreenPrintf(text); 187 | psvDebugScreenSetFgColor(WHITE); 188 | } -------------------------------------------------------------------------------- /main.h: -------------------------------------------------------------------------------- 1 | #ifndef __MAIN_H__ 2 | #define __MAIN_H__ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | #include //for button input 10 | #include //for blocking home button 11 | 12 | #include 13 | #include //for sceDisplayWaitVblankStart(); 14 | 15 | #include "graphics.h" //for debug text 16 | 17 | #include 18 | 19 | #define printf psvDebugScreenPrintf 20 | 21 | #define SCREEN_WIDTH 960 22 | #define SCREEN_HEIGHT 544 23 | 24 | #define TEXT_SIZE_BIG 1.5f 25 | #define TEXT_SIZE 1.0f 26 | 27 | 28 | #define MAIN_TITLE "Adrenaline EasyInstaller" 29 | #define TITLEID "ADRINSTAL" 30 | #define VERSION "1.15" 31 | 32 | #define DEFAULT_BASEGAME "NPEZ00104" //coming with integrated installer 33 | 34 | #define UPDATE_LINK "http://du01.psp.update.playstation.org/update/psp/image/us/2014_1212_6be8878f475ac5b1a499b95ab2f7d301/EBOOT.PBP" 35 | #define UPDATE_SIZE 32580549 36 | 37 | #define LIVEAREA_frame2_text "6.61 Adrenaline" 38 | #define LIVEAREA_frame3_text "eCustomFirmware" 39 | #define LIVEAREA_frame4_text "by TheFloW" 40 | 41 | SceCtrlData pad; 42 | uint32_t old_buttons, current_buttons, pressed_buttons, hold_buttons, hold2_buttons, released_buttons; 43 | 44 | extern vita2d_pgf *pgf; 45 | 46 | extern vita2d_texture *button_enter; 47 | extern vita2d_texture *button_cancel; 48 | extern vita2d_texture *button_pad; 49 | 50 | int debug = 0; //toggle debug mode here 51 | 52 | int ADR_PRX_INSTL = 0; 53 | int ADR_INSTALLED = 0; 54 | char ADR_FOLDER[128] = "ux0:adrenaline"; 55 | char TAI_CONFIG[128] = "ux0:tai/config.txt"; 56 | char ADR_VERSION[128] = "unknown"; 57 | 58 | 59 | int gamesfound = 0; 60 | char buffer[256]; 61 | char big_buffer[1024]; 62 | 63 | 64 | /// Color definitions ////////////////////////////////////////// 65 | uint32_t text_color = WHITE; 66 | uint32_t background_color = BLACK; 67 | uint32_t menu_active_color = RGBA8(0, 120, 255, 255); //BLUE 68 | uint32_t menu_text_active_color = BLACK; 69 | uint32_t menu_text_inactive_color = GREY; 70 | uint32_t menu_text_basegame = GREEN; 71 | uint32_t menu_scrollbar = RGBA8(0, 120, 255, 255); //BLUE; 72 | uint32_t menu_scrollbar_background = GREY; 73 | 74 | 75 | /// Options Menu Stuff ////////////////////////////////////////// 76 | enum { 77 | MENU_DUMMY, 78 | MENU_ACTIVE, 79 | MENU_BLOCKED, 80 | MENU_EXIT, 81 | }; 82 | 83 | typedef struct { 84 | char *title; 85 | int type; 86 | void *function; 87 | char *arg; 88 | char *arg2; 89 | char *message; 90 | } Menu; 91 | 92 | 93 | 94 | /// Functions ///////////////////////////////////////////////////////////////// 95 | int taiReloadConfig(); 96 | int vshSblAimgrIsVITA(); 97 | void scePowerRequestColdReset(); 98 | 99 | void readPad(); 100 | void lock_psbutton(); 101 | void unlock_psbutton(); 102 | 103 | //int delete_old_adrenaline(); 104 | int option_test(); 105 | 106 | int system_check(); 107 | 108 | void recovery_draw_main(); 109 | 110 | //recovery_menu 111 | void *draw_psp_games(); 112 | void *installer_options(char *arg); 113 | void *files_option(char *arg); 114 | void *uninstall_adrenaline(); 115 | void *theme_options(char *arg); 116 | void *more_options(char *arg); 117 | 118 | 119 | void recovery_draw_submenu(Menu *sub_menu, const char* title, char *arg); 120 | 121 | //theme_menu 122 | void *install_theme(); 123 | void *uninstall_theme(); 124 | void *install_sqlite_theme(); 125 | void *uninstall_sqlite_theme(); 126 | 127 | //more_menu 128 | void *install_pspgame(); 129 | int *option_delete_pbp(); 130 | int *option_delete_savestates(); 131 | int *option_delete_flash(); 132 | int *option_show_changelogfile(); 133 | int *option_show_taiconfig(); 134 | int *option_reloadTaiConfig(); 135 | int *option_rebuildDatabase(); 136 | int *option_updateDatabase(); 137 | int *option_reboot(); 138 | 139 | 140 | int recovery_draw_dialog(const char* title, const char* message, const char* message2); 141 | int recovery_draw_message(const char* title, const char* message, const char* button_text); 142 | int recovery_draw_statusmessage(const char* title, const char* message); 143 | void recovery_draw_textfile(const char* title, const char* path); 144 | 145 | void install_psp_basegame(); 146 | void createMS0structure(); 147 | 148 | void install_adrenaline_files(char *id, char *arg); 149 | void change_adrenaline_files(char *id, char *arg, char *arg2, int mode); 150 | void uninstall_adrenaline_files(char *path); 151 | 152 | void install_theme_files(char *id); 153 | void uninstall_theme_files(char *id); 154 | 155 | int add_livearea_style(char *id); 156 | int remove_livearea_style(char *id); 157 | 158 | #endif -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | TITLE_ID = ADRINSTAL 2 | TARGET = EasyInstaller 3 | NAME = Adrenaline EasyInstaller 4 | OBJS = main.o font.o graphics.o init.o file.o vita_sqlite.o sqlite-3.6.23.1/sqlite3.o 5 | 6 | PSVITAIP = 192.168.0.114 7 | 8 | RESOURCES_PNG = materials/button_pad.png materials/button_cross.png materials/button_circle.png 9 | OBJS += $(RESOURCES_PNG:.png=.o) 10 | 11 | LIBS = -lvita2d -lScePower_stub -lSceLibKernel_stub -lSceDisplay_stub -lSceGxm_stub -lSceAppUtil_stub -lSceAppMgr_stub \ 12 | -lSceSysmodule_stub -lSceCtrl_stub -lScePgf_stub -lSceHttp_stub -lSceNet_stub -lSceNetCtl_stub\ 13 | -lSceCommonDialog_stub -lSceVshBridge_stub -lSceShellSvc_stub -lfreetype -lpng -ljpeg -lz -lm -lc -ltaihen_stub -lScePromoterUtil_stub 14 | 15 | DEFINES = -DSQLITE_OS_OTHER=1 -DSQLITE_TEMP_STORE=3 -DSQLITE_THREADSAFE=0 16 | 17 | PREFIX = arm-vita-eabi 18 | CC = $(PREFIX)-gcc 19 | CFLAGS = -Wl,-q -Wall -O3 $(DEFINES) 20 | ASFLAGS = $(CFLAGS) 21 | 22 | all: $(TARGET).vpk 23 | 24 | %.vpk: eboot.bin 25 | #vita-mksfoex -s TITLE_ID=$(TITLE_ID) "$(TARGET)" param.sfo 26 | vita-mksfoex -s TITLE_ID=$(TITLE_ID) "$(NAME)" param.sfo 27 | vita-pack-vpk -s param.sfo -b eboot.bin \ 28 | -a livearea/icon0.png=sce_sys/icon0.png \ 29 | -a livearea/template.xml=sce_sys/livearea/contents/template.xml \ 30 | -a livearea/startup.png=sce_sys/livearea/contents/startup.png \ 31 | -a livearea/bg0.png=sce_sys/livearea/contents/bg0.png \ 32 | -a livearea/changeinfo.xml=sce_sys/changeinfo/changeinfo.xml \ 33 | -a files/releases/adrenaline/adrenaline.skprx=files/releases/adrenaline/adrenaline.skprx \ 34 | -a files/releases/adrenaline/adrenaline.suprx=files/releases/adrenaline/adrenaline.suprx \ 35 | -a files/releases/adrenaline_fix2/adrenaline.skprx=files/releases/adrenaline_fix2/adrenaline.skprx \ 36 | -a files/releases/adrenaline_fix2/adrenaline.suprx=files/releases/adrenaline_fix2/adrenaline.suprx \ 37 | -a files/releases/adrenaline_v2/adrenaline.skprx=files/releases/adrenaline_v2/adrenaline.skprx \ 38 | -a files/releases/adrenaline_v2/adrenaline.suprx=files/releases/adrenaline_v2/adrenaline.suprx \ 39 | -a files/releases/adrenaline_v3/adrenaline.skprx=files/releases/adrenaline_v3/adrenaline.skprx \ 40 | -a files/releases/adrenaline_v3/adrenaline.suprx=files/releases/adrenaline_v3/adrenaline.suprx \ 41 | -a files/releases/adrenaline_v3/usbdevice.skprx=files/releases/adrenaline_v3/usbdevice.skprx \ 42 | -a files/releases/adrenaline_v3_fix/adrenaline.skprx=files/releases/adrenaline_v3_fix/adrenaline.skprx \ 43 | -a files/releases/adrenaline_v3_fix/adrenaline.suprx=files/releases/adrenaline_v3_fix/adrenaline.suprx \ 44 | -a files/releases/adrenaline_v3_fix/usbdevice.skprx=files/releases/adrenaline_v3_fix/usbdevice.skprx \ 45 | -a files/releases/adrenaline_v3.1/adrenaline.skprx=files/releases/adrenaline_v3.1/adrenaline.skprx \ 46 | -a files/releases/adrenaline_v3.1/adrenaline.suprx=files/releases/adrenaline_v3.1/adrenaline.suprx \ 47 | -a files/releases/adrenaline_v3.1/usbdevice.skprx=files/releases/adrenaline_v3.1/usbdevice.skprx \ 48 | -a files/releases/adrenaline_v4/adrenaline.skprx=files/releases/adrenaline_v4/adrenaline.skprx \ 49 | -a files/releases/adrenaline_v4/adrenaline.suprx=files/releases/adrenaline_v4/adrenaline.suprx \ 50 | -a files/releases/adrenaline_v4/usbdevice.skprx=files/releases/adrenaline_v4/usbdevice.skprx \ 51 | -a files/releases/adrenaline_v4.1/adrenaline.skprx=files/releases/adrenaline_v4.1/adrenaline.skprx \ 52 | -a files/releases/adrenaline_v4.1/adrenaline.suprx=files/releases/adrenaline_v4.1/adrenaline.suprx \ 53 | -a files/releases/adrenaline_v4.1/usbdevice.skprx=files/releases/adrenaline_v4.1/usbdevice.skprx \ 54 | -a files/releases/adrenaline_v4.2/adrenaline.skprx=files/releases/adrenaline_v4.2/adrenaline.skprx \ 55 | -a files/releases/adrenaline_v4.2/adrenaline.suprx=files/releases/adrenaline_v4.2/adrenaline.suprx \ 56 | -a files/releases/adrenaline_v4.2/usbdevice.skprx=files/releases/adrenaline_v4.2/usbdevice.skprx \ 57 | -a files/releases/adrenaline_v5/adrenaline.skprx=files/releases/adrenaline_v5/adrenaline.skprx \ 58 | -a files/releases/adrenaline_v5/adrenaline.suprx=files/releases/adrenaline_v5/adrenaline.suprx \ 59 | -a files/releases/adrenaline_v5/usbdevice.skprx=files/releases/adrenaline_v5/usbdevice.skprx \ 60 | -a files/releases/adrenaline_v5.1/adrenaline.skprx=files/releases/adrenaline_v5.1/adrenaline.skprx \ 61 | -a files/releases/adrenaline_v5.1/adrenaline.suprx=files/releases/adrenaline_v5.1/adrenaline.suprx \ 62 | -a files/releases/adrenaline_v5.1/usbdevice.skprx=files/releases/adrenaline_v5.1/usbdevice.skprx \ 63 | -a files/updatehistory.txt=files/updatehistory.txt \ 64 | -a files/icon0.dds=files/icon0.dds \ 65 | -a files/bg0.png=files/bg0.png \ 66 | -a files/startup.png=files/startup.png \ 67 | -a files/PBOOT.PBP=files/PBOOT.PBP \ 68 | -a files/basegame/d0.pdb=files/basegame/bgdl/d0.pdb \ 69 | -a files/basegame/d1.pdb=files/basegame/bgdl/d1.pdb \ 70 | -a files/basegame/f0.pdb=files/basegame/bgdl/f0.pdb \ 71 | -a files/basegame/icon.png=files/basegame/bgdl/icon.png \ 72 | -a files/basegame/body.bin=files/basegame/pspemu/body.bin \ 73 | -a files/basegame/head.bin=files/basegame/pspemu/head.bin \ 74 | -a files/basegame/stat.bin=files/basegame/pspemu/stat.bin \ 75 | -a files/basegame/tail.bin=files/basegame/pspemu/tail.bin \ 76 | -a files/basegame/work.bin=files/basegame/pspemu/work.bin \ 77 | -a files/basegame/EBOOT.PBP=files/basegame/pspemu/EBOOT.PBP \ 78 | $@ 79 | 80 | eboot.bin: $(TARGET).velf 81 | vita-make-fself $< $@ 82 | #vita-make-fself -s $< $@ 83 | 84 | %.velf: %.elf 85 | vita-elf-create $< $@ 86 | 87 | $(TARGET).elf: $(OBJS) 88 | $(CC) $(CFLAGS) $^ $(LIBS) -o $@ 89 | 90 | %.o: %.png 91 | $(PREFIX)-ld -r -b binary -o $@ $^ 92 | 93 | clean: 94 | @rm -rf $(TARGET).vpk $(TARGET).velf $(TARGET).elf $(OBJS) \ 95 | eboot.bin param.sfo 96 | 97 | vpksend: $(TARGET).vpk 98 | curl -T $(TARGET).vpk ftp://$(PSVITAIP):1337/ux0:/ 99 | @echo "Sent." 100 | 101 | send: eboot.bin 102 | curl -T eboot.bin ftp://$(PSVITAIP):1337/ux0:/app/$(TITLE_ID)/ 103 | @echo "Sent." 104 | -------------------------------------------------------------------------------- /vita_sqlite.c: -------------------------------------------------------------------------------- 1 | // This was only tested with sqlite 3.6.23.1 2 | // Please note that this .c file does not implement thread safety for sqlite, and as such requires it to be built with -DSQLITE_THREADSAFE=0 as well 3 | // Build flags for sqlite: -DSQLITE_OS_OTHER=1 -DSQLITE_TEMP_STORE=3 -DSQLITE_THREADSAFE=0 4 | 5 | // It's also hacky -- no sync support, no tempdir support, access returning bs, etc... don't use in production! 6 | 7 | // based on test_demovfs.c 8 | 9 | #include "sqlite-3.6.23.1/sqlite3.h" 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | #define VERBOSE 0 19 | #if VERBOSE 20 | #define LOG psvDebugScreenPrintf 21 | #else 22 | #define LOG(...) 23 | #endif 24 | 25 | typedef struct VitaFile { 26 | sqlite3_file base; 27 | unsigned fd; 28 | } VitaFile; 29 | 30 | // File ops 31 | static int vita_xClose(sqlite3_file *pFile) { 32 | VitaFile *p = (VitaFile*)pFile; 33 | sceIoClose(p->fd); 34 | LOG("close %x\n", p->fd); 35 | return SQLITE_OK; 36 | } 37 | 38 | static int vita_xRead(sqlite3_file *pFile, void *zBuf, int iAmt, sqlite_int64 iOfst) { 39 | VitaFile *p = (VitaFile*)pFile; 40 | memset(zBuf, 0, iAmt); 41 | sceIoLseek(p->fd, iOfst, SCE_SEEK_SET); 42 | int read = sceIoRead(p->fd, zBuf, iAmt); 43 | LOG("read %x %x %x => %x\n", p->fd, zBuf, iAmt, read); 44 | if (read == iAmt) 45 | return SQLITE_OK; 46 | else if (read >= 0) 47 | return SQLITE_IOERR_SHORT_READ; 48 | return SQLITE_IOERR_READ; 49 | } 50 | 51 | static int vita_xWrite(sqlite3_file *pFile, const void *zBuf, int iAmt, sqlite_int64 iOfst) { 52 | VitaFile *p = (VitaFile*)pFile; 53 | int ofst = sceIoLseek(p->fd, iOfst, SCE_SEEK_SET); 54 | LOG("seek %x %x => %x\n", p->fd, iOfst, ofst); 55 | if (ofst != iOfst) 56 | return SQLITE_IOERR_WRITE; 57 | int write = sceIoWrite(p->fd, zBuf, iAmt); 58 | LOG("write %x %x %x => %x\n", p->fd, zBuf, iAmt); 59 | if (write != iAmt) 60 | return SQLITE_IOERR_WRITE; 61 | return SQLITE_OK; 62 | } 63 | 64 | static int vita_xTruncate(sqlite3_file *pFile, sqlite_int64 size) { 65 | LOG("truncate\n"); 66 | return SQLITE_OK; 67 | } 68 | 69 | static int vita_xSync(sqlite3_file *pFile, int flags) { 70 | return SQLITE_OK; 71 | } 72 | 73 | static int vita_xFileSize(sqlite3_file *pFile, sqlite_int64 *pSize) { 74 | VitaFile *p = (VitaFile*)pFile; 75 | SceIoStat stat = {0}; 76 | sceIoGetstatByFd(p->fd, &stat); 77 | LOG("filesize %x => %x\n", p->fd, stat.st_size); 78 | *pSize = stat.st_size; 79 | return SQLITE_OK; 80 | } 81 | 82 | static int vita_xLock(sqlite3_file *pFile, int eLock) { 83 | return SQLITE_OK; 84 | } 85 | 86 | static int vita_xUnlock(sqlite3_file *pFile, int eLock) { 87 | return SQLITE_OK; 88 | } 89 | 90 | static int vita_xCheckReservedLock(sqlite3_file *pFile, int *pResOut) { 91 | *pResOut = 0; 92 | return SQLITE_OK; 93 | } 94 | 95 | static int vita_xFileControl(sqlite3_file *pFile, int op, void *pArg) { 96 | return SQLITE_OK; 97 | } 98 | 99 | static int vita_xSectorSize(sqlite3_file *pFile) { 100 | return 0; 101 | } 102 | 103 | static int vita_xDeviceCharacteristics(sqlite3_file *pFile) { 104 | return 0; 105 | } 106 | 107 | // VFS ops 108 | static int vita_xOpen(sqlite3_vfs *vfs, const char *name, sqlite3_file *file, int flags, int *outFlags) { 109 | static const sqlite3_io_methods vitaio = { 110 | 1, 111 | vita_xClose, 112 | vita_xRead, 113 | vita_xWrite, 114 | vita_xTruncate, 115 | vita_xSync, 116 | vita_xFileSize, 117 | vita_xLock, 118 | vita_xUnlock, 119 | vita_xCheckReservedLock, 120 | vita_xFileControl, 121 | vita_xSectorSize, 122 | vita_xDeviceCharacteristics, 123 | }; 124 | 125 | VitaFile *p = (VitaFile*)file; 126 | unsigned oflags = 0; 127 | if (flags & SQLITE_OPEN_EXCLUSIVE) 128 | oflags |= SCE_O_EXCL; 129 | if (flags & SQLITE_OPEN_CREATE) 130 | oflags |= SCE_O_CREAT; 131 | if (flags & SQLITE_OPEN_READONLY) 132 | oflags |= SCE_O_RDONLY; 133 | if (flags & SQLITE_OPEN_READWRITE) 134 | oflags |= SCE_O_RDWR; 135 | // TODO(xyz): sqlite tries to open inexistant journal and then tries to read from it, wtf? 136 | // so force O_CREAT here 137 | if (flags & SQLITE_OPEN_MAIN_JOURNAL && !(flags & SQLITE_OPEN_EXCLUSIVE)) 138 | oflags |= SCE_O_CREAT; 139 | memset(p, 0, sizeof(*p)); 140 | p->fd = sceIoOpen(name, oflags, 7); 141 | LOG("open %s %x orig flags %x => %x\n", name, oflags, flags, p->fd); 142 | if (p->fd < 0) { 143 | return SQLITE_CANTOPEN; 144 | } 145 | if (outFlags) 146 | *outFlags = flags; 147 | 148 | p->base.pMethods = &vitaio; 149 | 150 | return SQLITE_OK; 151 | } 152 | 153 | int vita_xDelete(sqlite3_vfs *vfs, const char *name, int syncDir) { 154 | int ret = sceIoRemove(name); 155 | if (ret < 0) 156 | return SQLITE_IOERR_DELETE; 157 | return SQLITE_OK; 158 | } 159 | 160 | int vita_xAccess(sqlite3_vfs *vfs, const char *name, int flags, int *pResOut) { 161 | *pResOut = 1; 162 | return SQLITE_OK; 163 | } 164 | 165 | int vita_xFullPathname(sqlite3_vfs *vfs, const char *zName, int nOut, char *zOut) { 166 | snprintf(zOut, nOut, "%s", zName); 167 | return 0; 168 | } 169 | 170 | void* vita_xDlOpen(sqlite3_vfs *vfs, const char *zFilename) { 171 | return NULL; 172 | } 173 | 174 | void vita_xDlError(sqlite3_vfs *vfs, int nByte, char *zErrMsg) { 175 | } 176 | 177 | void (*vita_xDlSym(sqlite3_vfs *vfs,void*p, const char *zSymbol))(void) { 178 | return NULL; 179 | } 180 | 181 | void vita_xDlClose(sqlite3_vfs *vfs, void*p) { 182 | } 183 | 184 | int vita_xRandomness(sqlite3_vfs *vfs, int nByte, char *zOut) { 185 | return SQLITE_OK; 186 | } 187 | 188 | int vita_xSleep(sqlite3_vfs *vfs, int microseconds) { 189 | sceKernelDelayThread(microseconds); 190 | return SQLITE_OK; 191 | } 192 | 193 | int vita_xCurrentTime(sqlite3_vfs *vfs, double *pTime) { 194 | time_t t = 0; 195 | SceDateTime time = {0}; 196 | sceRtcGetCurrentClock(&time, 0); 197 | sceRtcGetTime_t(&time, &t); 198 | *pTime = t/86400.0 + 2440587.5; 199 | return SQLITE_OK; 200 | } 201 | 202 | int vita_xGetLastError(sqlite3_vfs *vfs, int e, char *err) { 203 | return 0; 204 | } 205 | 206 | sqlite3_vfs vita_vfs = { 207 | .iVersion = 1, 208 | .szOsFile = sizeof(VitaFile), 209 | .mxPathname = 0x100, 210 | .pNext = NULL, 211 | .zName = "psp2", 212 | .pAppData = NULL, 213 | .xOpen = vita_xOpen, 214 | .xDelete = vita_xDelete, 215 | .xAccess = vita_xAccess, 216 | .xFullPathname = vita_xFullPathname, 217 | .xDlOpen = vita_xDlOpen, 218 | .xDlError = vita_xDlError, 219 | .xDlSym = vita_xDlSym, 220 | .xDlClose = vita_xDlClose, 221 | .xRandomness = vita_xRandomness, 222 | .xSleep = vita_xSleep, 223 | .xCurrentTime = vita_xCurrentTime, 224 | .xGetLastError = vita_xGetLastError, 225 | }; 226 | 227 | int sqlite3_os_init(void) { 228 | sqlite3_vfs_register(&vita_vfs, 1); 229 | return 0; 230 | } 231 | 232 | int sqlite3_os_end(void) { 233 | return 0; 234 | } 235 | -------------------------------------------------------------------------------- /sqlite-3.6.23.1/sqlite3.1: -------------------------------------------------------------------------------- 1 | .\" Hey, EMACS: -*- nroff -*- 2 | .\" First parameter, NAME, should be all caps 3 | .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection 4 | .\" other parameters are allowed: see man(7), man(1) 5 | .TH SQLITE3 1 "Mon Apr 15 23:49:17 2002" 6 | .\" Please adjust this date whenever revising the manpage. 7 | .\" 8 | .\" Some roff macros, for reference: 9 | .\" .nh disable hyphenation 10 | .\" .hy enable hyphenation 11 | .\" .ad l left justify 12 | .\" .ad b justify to both left and right margins 13 | .\" .nf disable filling 14 | .\" .fi enable filling 15 | .\" .br insert line break 16 | .\" .sp insert n+1 empty lines 17 | .\" for manpage-specific macros, see man(7) 18 | .SH NAME 19 | .B sqlite3 20 | \- A command line interface for SQLite version 3 21 | 22 | .SH SYNOPSIS 23 | .B sqlite3 24 | .RI [ options ] 25 | .RI [ databasefile ] 26 | .RI [ SQL ] 27 | 28 | .SH SUMMARY 29 | .PP 30 | .B sqlite3 31 | is a terminal-based front-end to the SQLite library that can evaluate 32 | queries interactively and display the results in multiple formats. 33 | .B sqlite3 34 | can also be used within shell scripts and other applications to provide 35 | batch processing features. 36 | 37 | .SH DESCRIPTION 38 | To start a 39 | .B sqlite3 40 | interactive session, invoke the 41 | .B sqlite3 42 | command and optionally provide the name of a database file. If the 43 | database file does not exist, it will be created. If the database file 44 | does exist, it will be opened. 45 | 46 | For example, to create a new database file named "mydata.db", create 47 | a table named "memos" and insert a couple of records into that table: 48 | .sp 49 | $ 50 | .B sqlite3 mydata.db 51 | .br 52 | SQLite version 3.1.3 53 | .br 54 | Enter ".help" for instructions 55 | .br 56 | sqlite> 57 | .B create table memos(text, priority INTEGER); 58 | .br 59 | sqlite> 60 | .B insert into memos values('deliver project description', 10); 61 | .br 62 | sqlite> 63 | .B insert into memos values('lunch with Christine', 100); 64 | .br 65 | sqlite> 66 | .B select * from memos; 67 | .br 68 | deliver project description|10 69 | .br 70 | lunch with Christine|100 71 | .br 72 | sqlite> 73 | .sp 74 | 75 | If no database name is supplied, the ATTACH sql command can be used 76 | to attach to existing or create new database files. ATTACH can also 77 | be used to attach to multiple databases within the same interactive 78 | session. This is useful for migrating data between databases, 79 | possibly changing the schema along the way. 80 | 81 | Optionally, a SQL statement or set of SQL statements can be supplied as 82 | a single argument. Multiple statements should be separated by 83 | semi-colons. 84 | 85 | For example: 86 | .sp 87 | $ 88 | .B sqlite3 -line mydata.db 'select * from memos where priority > 20;' 89 | .br 90 | text = lunch with Christine 91 | .br 92 | priority = 100 93 | .br 94 | .sp 95 | 96 | .SS SQLITE META-COMMANDS 97 | .PP 98 | The interactive interpreter offers a set of meta-commands that can be 99 | used to control the output format, examine the currently attached 100 | database files, or perform administrative operations upon the 101 | attached databases (such as rebuilding indices). Meta-commands are 102 | always prefixed with a dot (.). 103 | 104 | A list of available meta-commands can be viewed at any time by issuing 105 | the '.help' command. For example: 106 | .sp 107 | sqlite> 108 | .B .help 109 | .nf 110 | .cc | 111 | .databases List names and files of attached databases 112 | .dump ?TABLE? ... Dump the database in an SQL text format 113 | .echo ON|OFF Turn command echo on or off 114 | .exit Exit this program 115 | .explain ON|OFF Turn output mode suitable for EXPLAIN on or off. 116 | .header(s) ON|OFF Turn display of headers on or off 117 | .help Show this message 118 | .import FILE TABLE Import data from FILE into TABLE 119 | .indices TABLE Show names of all indices on TABLE 120 | .mode MODE ?TABLE? Set output mode where MODE is one of: 121 | csv Comma-separated values 122 | column Left-aligned columns. (See .width) 123 | html HTML code 124 | insert SQL insert statements for TABLE 125 | line One value per line 126 | list Values delimited by .separator string 127 | tabs Tab-separated values 128 | tcl TCL list elements 129 | .nullvalue STRING Print STRING in place of NULL values 130 | .output FILENAME Send output to FILENAME 131 | .output stdout Send output to the screen 132 | .prompt MAIN CONTINUE Replace the standard prompts 133 | .quit Exit this program 134 | .read FILENAME Execute SQL in FILENAME 135 | .schema ?TABLE? Show the CREATE statements 136 | .separator STRING Change separator used by output mode and .import 137 | .show Show the current values for various settings 138 | .tables ?PATTERN? List names of tables matching a LIKE pattern 139 | .timeout MS Try opening locked tables for MS milliseconds 140 | .width NUM NUM ... Set column widths for "column" mode 141 | sqlite> 142 | |cc . 143 | .sp 144 | .fi 145 | 146 | .SH OPTIONS 147 | .B sqlite3 148 | has the following options: 149 | .TP 150 | .BI \-init\ file 151 | Read and execute commands from 152 | .I file 153 | , which can contain a mix of SQL statements and meta-commands. 154 | .TP 155 | .B \-echo 156 | Print commands before execution. 157 | .TP 158 | .B \-[no]header 159 | Turn headers on or off. 160 | .TP 161 | .B \-column 162 | Query results will be displayed in a table like form, using 163 | whitespace characters to separate the columns and align the 164 | output. 165 | .TP 166 | .B \-html 167 | Query results will be output as simple HTML tables. 168 | .TP 169 | .B \-line 170 | Query results will be displayed with one value per line, rows 171 | separated by a blank line. Designed to be easily parsed by 172 | scripts or other programs 173 | .TP 174 | .B \-list 175 | Query results will be displayed with the separator (|, by default) 176 | character between each field value. The default. 177 | .TP 178 | .BI \-separator\ separator 179 | Set output field separator. Default is '|'. 180 | .TP 181 | .BI \-nullvalue\ string 182 | Set string used to represent NULL values. Default is '' 183 | (empty string). 184 | .TP 185 | .B \-version 186 | Show SQLite version. 187 | .TP 188 | .B \-help 189 | Show help on options and exit. 190 | 191 | 192 | .SH INIT FILE 193 | .B sqlite3 194 | reads an initialization file to set the configuration of the 195 | interactive environment. Throughout initialization, any previously 196 | specified setting can be overridden. The sequence of initialization is 197 | as follows: 198 | 199 | o The default configuration is established as follows: 200 | 201 | .sp 202 | .nf 203 | .cc | 204 | mode = LIST 205 | separator = "|" 206 | main prompt = "sqlite> " 207 | continue prompt = " ...> " 208 | |cc . 209 | .sp 210 | .fi 211 | 212 | o If the file 213 | .B ~/.sqliterc 214 | exists, it is processed first. 215 | can be found in the user's home directory, it is 216 | read and processed. It should generally only contain meta-commands. 217 | 218 | o If the -init option is present, the specified file is processed. 219 | 220 | o All other command line options are processed. 221 | 222 | .SH SEE ALSO 223 | http://www.sqlite.org/ 224 | .br 225 | The sqlite-doc package 226 | .SH AUTHOR 227 | This manual page was originally written by Andreas Rottmann 228 | , for the Debian GNU/Linux system (but may be used 229 | by others). It was subsequently revised by Bill Bumgarner . 230 | -------------------------------------------------------------------------------- /font.c: -------------------------------------------------------------------------------- 1 | /* 2 | * PSP Software Development Kit - http://www.pspdev.org 3 | * ----------------------------------------------------------------------- 4 | * Licensed under the BSD license, see LICENSE in PSPSDK root for details. 5 | * 6 | * font.c - Debug Font. 7 | * 8 | * Copyright (c) 2005 Marcus R. Brown 9 | * Copyright (c) 2005 James Forshaw 10 | * Copyright (c) 2005 John Kelley 11 | * 12 | * $Id: font.c 540 2005-07-08 19:35:10Z warren $ 13 | */ 14 | 15 | unsigned char msx[]= 16 | "\x00\x00\x00\x00\x00\x00\x00\x00\x3c\x42\xa5\x81\xa5\x99\x42\x3c" 17 | "\x3c\x7e\xdb\xff\xff\xdb\x66\x3c\x6c\xfe\xfe\xfe\x7c\x38\x10\x00" 18 | "\x10\x38\x7c\xfe\x7c\x38\x10\x00\x10\x38\x54\xfe\x54\x10\x38\x00" 19 | "\x10\x38\x7c\xfe\xfe\x10\x38\x00\x00\x00\x00\x30\x30\x00\x00\x00" 20 | "\xff\xff\xff\xe7\xe7\xff\xff\xff\x38\x44\x82\x82\x82\x44\x38\x00" 21 | "\xc7\xbb\x7d\x7d\x7d\xbb\xc7\xff\x0f\x03\x05\x79\x88\x88\x88\x70" 22 | "\x38\x44\x44\x44\x38\x10\x7c\x10\x30\x28\x24\x24\x28\x20\xe0\xc0" 23 | "\x3c\x24\x3c\x24\x24\xe4\xdc\x18\x10\x54\x38\xee\x38\x54\x10\x00" 24 | "\x10\x10\x10\x7c\x10\x10\x10\x10\x10\x10\x10\xff\x00\x00\x00\x00" 25 | "\x00\x00\x00\xff\x10\x10\x10\x10\x10\x10\x10\xf0\x10\x10\x10\x10" 26 | "\x10\x10\x10\x1f\x10\x10\x10\x10\x10\x10\x10\xff\x10\x10\x10\x10" 27 | "\x10\x10\x10\x10\x10\x10\x10\x10\x00\x00\x00\xff\x00\x00\x00\x00" 28 | "\x00\x00\x00\x1f\x10\x10\x10\x10\x00\x00\x00\xf0\x10\x10\x10\x10" 29 | "\x10\x10\x10\x1f\x00\x00\x00\x00\x10\x10\x10\xf0\x00\x00\x00\x00" 30 | "\x81\x42\x24\x18\x18\x24\x42\x81\x01\x02\x04\x08\x10\x20\x40\x80" 31 | "\x80\x40\x20\x10\x08\x04\x02\x01\x00\x10\x10\xff\x10\x10\x00\x00" 32 | "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x20\x20\x20\x00\x00\x20\x00" 33 | "\x50\x50\x50\x00\x00\x00\x00\x00\x50\x50\xf8\x50\xf8\x50\x50\x00" 34 | "\x20\x78\xa0\x70\x28\xf0\x20\x00\xc0\xc8\x10\x20\x40\x98\x18\x00" 35 | "\x40\xa0\x40\xa8\x90\x98\x60\x00\x10\x20\x40\x00\x00\x00\x00\x00" 36 | "\x10\x20\x40\x40\x40\x20\x10\x00\x40\x20\x10\x10\x10\x20\x40\x00" 37 | "\x20\xa8\x70\x20\x70\xa8\x20\x00\x00\x20\x20\xf8\x20\x20\x00\x00" 38 | "\x00\x00\x00\x00\x00\x20\x20\x40\x00\x00\x00\x78\x00\x00\x00\x00" 39 | "\x00\x00\x00\x00\x00\x60\x60\x00\x00\x00\x08\x10\x20\x40\x80\x00" 40 | "\x70\x88\x98\xa8\xc8\x88\x70\x00\x20\x60\xa0\x20\x20\x20\xf8\x00" 41 | "\x70\x88\x08\x10\x60\x80\xf8\x00\x70\x88\x08\x30\x08\x88\x70\x00" 42 | "\x10\x30\x50\x90\xf8\x10\x10\x00\xf8\x80\xe0\x10\x08\x10\xe0\x00" 43 | "\x30\x40\x80\xf0\x88\x88\x70\x00\xf8\x88\x10\x20\x20\x20\x20\x00" 44 | "\x70\x88\x88\x70\x88\x88\x70\x00\x70\x88\x88\x78\x08\x10\x60\x00" 45 | "\x00\x00\x20\x00\x00\x20\x00\x00\x00\x00\x20\x00\x00\x20\x20\x40" 46 | "\x18\x30\x60\xc0\x60\x30\x18\x00\x00\x00\xf8\x00\xf8\x00\x00\x00" 47 | "\xc0\x60\x30\x18\x30\x60\xc0\x00\x70\x88\x08\x10\x20\x00\x20\x00" 48 | "\x70\x88\x08\x68\xa8\xa8\x70\x00\x20\x50\x88\x88\xf8\x88\x88\x00" 49 | "\xf0\x48\x48\x70\x48\x48\xf0\x00\x30\x48\x80\x80\x80\x48\x30\x00" 50 | "\xe0\x50\x48\x48\x48\x50\xe0\x00\xf8\x80\x80\xf0\x80\x80\xf8\x00" 51 | "\xf8\x80\x80\xf0\x80\x80\x80\x00\x70\x88\x80\xb8\x88\x88\x70\x00" 52 | "\x88\x88\x88\xf8\x88\x88\x88\x00\x70\x20\x20\x20\x20\x20\x70\x00" 53 | "\x38\x10\x10\x10\x90\x90\x60\x00\x88\x90\xa0\xc0\xa0\x90\x88\x00" 54 | "\x80\x80\x80\x80\x80\x80\xf8\x00\x88\xd8\xa8\xa8\x88\x88\x88\x00" 55 | "\x88\xc8\xc8\xa8\x98\x98\x88\x00\x70\x88\x88\x88\x88\x88\x70\x00" 56 | "\xf0\x88\x88\xf0\x80\x80\x80\x00\x70\x88\x88\x88\xa8\x90\x68\x00" 57 | "\xf0\x88\x88\xf0\xa0\x90\x88\x00\x70\x88\x80\x70\x08\x88\x70\x00" 58 | "\xf8\x20\x20\x20\x20\x20\x20\x00\x88\x88\x88\x88\x88\x88\x70\x00" 59 | "\x88\x88\x88\x88\x50\x50\x20\x00\x88\x88\x88\xa8\xa8\xd8\x88\x00" 60 | "\x88\x88\x50\x20\x50\x88\x88\x00\x88\x88\x88\x70\x20\x20\x20\x00" 61 | "\xf8\x08\x10\x20\x40\x80\xf8\x00\x70\x40\x40\x40\x40\x40\x70\x00" 62 | "\x00\x00\x80\x40\x20\x10\x08\x00\x70\x10\x10\x10\x10\x10\x70\x00" 63 | "\x20\x50\x88\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x00" 64 | "\x40\x20\x10\x00\x00\x00\x00\x00\x00\x00\x70\x08\x78\x88\x78\x00" 65 | "\x80\x80\xb0\xc8\x88\xc8\xb0\x00\x00\x00\x70\x88\x80\x88\x70\x00" 66 | "\x08\x08\x68\x98\x88\x98\x68\x00\x00\x00\x70\x88\xf8\x80\x70\x00" 67 | "\x10\x28\x20\xf8\x20\x20\x20\x00\x00\x00\x68\x98\x98\x68\x08\x70" 68 | "\x80\x80\xf0\x88\x88\x88\x88\x00\x20\x00\x60\x20\x20\x20\x70\x00" 69 | "\x10\x00\x30\x10\x10\x10\x90\x60\x40\x40\x48\x50\x60\x50\x48\x00" 70 | "\x60\x20\x20\x20\x20\x20\x70\x00\x00\x00\xd0\xa8\xa8\xa8\xa8\x00" 71 | "\x00\x00\xb0\xc8\x88\x88\x88\x00\x00\x00\x70\x88\x88\x88\x70\x00" 72 | "\x00\x00\xb0\xc8\xc8\xb0\x80\x80\x00\x00\x68\x98\x98\x68\x08\x08" 73 | "\x00\x00\xb0\xc8\x80\x80\x80\x00\x00\x00\x78\x80\xf0\x08\xf0\x00" 74 | "\x40\x40\xf0\x40\x40\x48\x30\x00\x00\x00\x90\x90\x90\x90\x68\x00" 75 | "\x00\x00\x88\x88\x88\x50\x20\x00\x00\x00\x88\xa8\xa8\xa8\x50\x00" 76 | "\x00\x00\x88\x50\x20\x50\x88\x00\x00\x00\x88\x88\x98\x68\x08\x70" 77 | "\x00\x00\xf8\x10\x20\x40\xf8\x00\x18\x20\x20\x40\x20\x20\x18\x00" 78 | "\x20\x20\x20\x00\x20\x20\x20\x00\xc0\x20\x20\x10\x20\x20\xc0\x00" 79 | "\x40\xa8\x10\x00\x00\x00\x00\x00\x00\x00\x20\x50\xf8\x00\x00\x00" 80 | "\x70\x88\x80\x80\x88\x70\x20\x60\x90\x00\x00\x90\x90\x90\x68\x00" 81 | "\x10\x20\x70\x88\xf8\x80\x70\x00\x20\x50\x70\x08\x78\x88\x78\x00" 82 | "\x48\x00\x70\x08\x78\x88\x78\x00\x20\x10\x70\x08\x78\x88\x78\x00" 83 | "\x20\x00\x70\x08\x78\x88\x78\x00\x00\x70\x80\x80\x80\x70\x10\x60" 84 | "\x20\x50\x70\x88\xf8\x80\x70\x00\x50\x00\x70\x88\xf8\x80\x70\x00" 85 | "\x20\x10\x70\x88\xf8\x80\x70\x00\x50\x00\x00\x60\x20\x20\x70\x00" 86 | "\x20\x50\x00\x60\x20\x20\x70\x00\x40\x20\x00\x60\x20\x20\x70\x00" 87 | "\x50\x00\x20\x50\x88\xf8\x88\x00\x20\x00\x20\x50\x88\xf8\x88\x00" 88 | "\x10\x20\xf8\x80\xf0\x80\xf8\x00\x00\x00\x6c\x12\x7e\x90\x6e\x00" 89 | "\x3e\x50\x90\x9c\xf0\x90\x9e\x00\x60\x90\x00\x60\x90\x90\x60\x00" 90 | "\x90\x00\x00\x60\x90\x90\x60\x00\x40\x20\x00\x60\x90\x90\x60\x00" 91 | "\x40\xa0\x00\xa0\xa0\xa0\x50\x00\x40\x20\x00\xa0\xa0\xa0\x50\x00" 92 | "\x90\x00\x90\x90\xb0\x50\x10\xe0\x50\x00\x70\x88\x88\x88\x70\x00" 93 | "\x50\x00\x88\x88\x88\x88\x70\x00\x20\x20\x78\x80\x80\x78\x20\x20" 94 | "\x18\x24\x20\xf8\x20\xe2\x5c\x00\x88\x50\x20\xf8\x20\xf8\x20\x00" 95 | "\xc0\xa0\xa0\xc8\x9c\x88\x88\x8c\x18\x20\x20\xf8\x20\x20\x20\x40" 96 | "\x10\x20\x70\x08\x78\x88\x78\x00\x10\x20\x00\x60\x20\x20\x70\x00" 97 | "\x20\x40\x00\x60\x90\x90\x60\x00\x20\x40\x00\x90\x90\x90\x68\x00" 98 | "\x50\xa0\x00\xa0\xd0\x90\x90\x00\x28\x50\x00\xc8\xa8\x98\x88\x00" 99 | "\x00\x70\x08\x78\x88\x78\x00\xf8\x00\x60\x90\x90\x90\x60\x00\xf0" 100 | "\x20\x00\x20\x40\x80\x88\x70\x00\x00\x00\x00\xf8\x80\x80\x00\x00" 101 | "\x00\x00\x00\xf8\x08\x08\x00\x00\x84\x88\x90\xa8\x54\x84\x08\x1c" 102 | "\x84\x88\x90\xa8\x58\xa8\x3c\x08\x20\x00\x00\x20\x20\x20\x20\x00" 103 | "\x00\x00\x24\x48\x90\x48\x24\x00\x00\x00\x90\x48\x24\x48\x90\x00" 104 | "\x28\x50\x20\x50\x88\xf8\x88\x00\x28\x50\x70\x08\x78\x88\x78\x00" 105 | "\x28\x50\x00\x70\x20\x20\x70\x00\x28\x50\x00\x20\x20\x20\x70\x00" 106 | "\x28\x50\x00\x70\x88\x88\x70\x00\x50\xa0\x00\x60\x90\x90\x60\x00" 107 | "\x28\x50\x00\x88\x88\x88\x70\x00\x50\xa0\x00\xa0\xa0\xa0\x50\x00" 108 | "\xfc\x48\x48\x48\xe8\x08\x50\x20\x00\x50\x00\x50\x50\x50\x10\x20" 109 | "\xc0\x44\xc8\x54\xec\x54\x9e\x04\x10\xa8\x40\x00\x00\x00\x00\x00" 110 | "\x00\x20\x50\x88\x50\x20\x00\x00\x88\x10\x20\x40\x80\x28\x00\x00" 111 | "\x7c\xa8\xa8\x68\x28\x28\x28\x00\x38\x40\x30\x48\x48\x30\x08\x70" 112 | "\x00\x00\x00\x00\x00\x00\xff\xff\xf0\xf0\xf0\xf0\x0f\x0f\x0f\x0f" 113 | "\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00" 114 | "\x00\x00\x00\x3c\x3c\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00" 115 | "\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x0f\x0f\x0f\x0f\xf0\xf0\xf0\xf0" 116 | "\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfc\x03\x03\x03\x03\x03\x03\x03\x03" 117 | "\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x3f\x11\x22\x44\x88\x11\x22\x44\x88" 118 | "\x88\x44\x22\x11\x88\x44\x22\x11\xfe\x7c\x38\x10\x00\x00\x00\x00" 119 | "\x00\x00\x00\x00\x10\x38\x7c\xfe\x80\xc0\xe0\xf0\xe0\xc0\x80\x00" 120 | "\x01\x03\x07\x0f\x07\x03\x01\x00\xff\x7e\x3c\x18\x18\x3c\x7e\xff" 121 | "\x81\xc3\xe7\xff\xff\xe7\xc3\x81\xf0\xf0\xf0\xf0\x00\x00\x00\x00" 122 | "\x00\x00\x00\x00\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x00\x00\x00\x00" 123 | "\x00\x00\x00\x00\xf0\xf0\xf0\xf0\x33\x33\xcc\xcc\x33\x33\xcc\xcc" 124 | "\x00\x20\x20\x50\x50\x88\xf8\x00\x20\x20\x70\x20\x70\x20\x20\x00" 125 | "\x00\x00\x00\x50\x88\xa8\x50\x00\xff\xff\xff\xff\xff\xff\xff\xff" 126 | "\x00\x00\x00\x00\xff\xff\xff\xff\xf0\xf0\xf0\xf0\xf0\xf0\xf0\xf0" 127 | "\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\xff\xff\xff\xff\x00\x00\x00\x00" 128 | "\x00\x00\x68\x90\x90\x90\x68\x00\x30\x48\x48\x70\x48\x48\x70\xc0" 129 | "\xf8\x88\x80\x80\x80\x80\x80\x00\xf8\x50\x50\x50\x50\x50\x98\x00" 130 | "\xf8\x88\x40\x20\x40\x88\xf8\x00\x00\x00\x78\x90\x90\x90\x60\x00" 131 | "\x00\x50\x50\x50\x50\x68\x80\x80\x00\x50\xa0\x20\x20\x20\x20\x00" 132 | "\xf8\x20\x70\xa8\xa8\x70\x20\xf8\x20\x50\x88\xf8\x88\x50\x20\x00" 133 | "\x70\x88\x88\x88\x50\x50\xd8\x00\x30\x40\x40\x20\x50\x50\x50\x20" 134 | "\x00\x00\x00\x50\xa8\xa8\x50\x00\x08\x70\xa8\xa8\xa8\x70\x80\x00" 135 | "\x38\x40\x80\xf8\x80\x40\x38\x00\x70\x88\x88\x88\x88\x88\x88\x00" 136 | "\x00\xf8\x00\xf8\x00\xf8\x00\x00\x20\x20\xf8\x20\x20\x00\xf8\x00" 137 | "\xc0\x30\x08\x30\xc0\x00\xf8\x00\x18\x60\x80\x60\x18\x00\xf8\x00" 138 | "\x10\x28\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\xa0\x40" 139 | "\x00\x20\x00\xf8\x00\x20\x00\x00\x00\x50\xa0\x00\x50\xa0\x00\x00" 140 | "\x00\x18\x24\x24\x18\x00\x00\x00\x00\x30\x78\x78\x30\x00\x00\x00" 141 | "\x00\x00\x00\x00\x30\x00\x00\x00\x3e\x20\x20\x20\xa0\x60\x20\x00" 142 | "\xa0\x50\x50\x50\x00\x00\x00\x00\x40\xa0\x20\x40\xe0\x00\x00\x00" 143 | "\x00\x38\x38\x38\x38\x38\x38\x00\x00\x00\x00\x00\x00\x00\x00"; 144 | 145 | 146 | 147 | -------------------------------------------------------------------------------- /sqlite-3.6.23.1/INSTALL: -------------------------------------------------------------------------------- 1 | Installation Instructions 2 | ************************* 3 | 4 | Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free 5 | Software Foundation, Inc. 6 | 7 | This file is free documentation; the Free Software Foundation gives 8 | unlimited permission to copy, distribute and modify it. 9 | 10 | Basic Installation 11 | ================== 12 | 13 | These are generic installation instructions. 14 | 15 | The `configure' shell script attempts to guess correct values for 16 | various system-dependent variables used during compilation. It uses 17 | those values to create a `Makefile' in each directory of the package. 18 | It may also create one or more `.h' files containing system-dependent 19 | definitions. Finally, it creates a shell script `config.status' that 20 | you can run in the future to recreate the current configuration, and a 21 | file `config.log' containing compiler output (useful mainly for 22 | debugging `configure'). 23 | 24 | It can also use an optional file (typically called `config.cache' 25 | and enabled with `--cache-file=config.cache' or simply `-C') that saves 26 | the results of its tests to speed up reconfiguring. (Caching is 27 | disabled by default to prevent problems with accidental use of stale 28 | cache files.) 29 | 30 | If you need to do unusual things to compile the package, please try 31 | to figure out how `configure' could check whether to do them, and mail 32 | diffs or instructions to the address given in the `README' so they can 33 | be considered for the next release. If you are using the cache, and at 34 | some point `config.cache' contains results you don't want to keep, you 35 | may remove or edit it. 36 | 37 | The file `configure.ac' (or `configure.in') is used to create 38 | `configure' by a program called `autoconf'. You only need 39 | `configure.ac' if you want to change it or regenerate `configure' using 40 | a newer version of `autoconf'. 41 | 42 | The simplest way to compile this package is: 43 | 44 | 1. `cd' to the directory containing the package's source code and type 45 | `./configure' to configure the package for your system. If you're 46 | using `csh' on an old version of System V, you might need to type 47 | `sh ./configure' instead to prevent `csh' from trying to execute 48 | `configure' itself. 49 | 50 | Running `configure' takes awhile. While running, it prints some 51 | messages telling which features it is checking for. 52 | 53 | 2. Type `make' to compile the package. 54 | 55 | 3. Optionally, type `make check' to run any self-tests that come with 56 | the package. 57 | 58 | 4. Type `make install' to install the programs and any data files and 59 | documentation. 60 | 61 | 5. You can remove the program binaries and object files from the 62 | source code directory by typing `make clean'. To also remove the 63 | files that `configure' created (so you can compile the package for 64 | a different kind of computer), type `make distclean'. There is 65 | also a `make maintainer-clean' target, but that is intended mainly 66 | for the package's developers. If you use it, you may have to get 67 | all sorts of other programs in order to regenerate files that came 68 | with the distribution. 69 | 70 | Compilers and Options 71 | ===================== 72 | 73 | Some systems require unusual options for compilation or linking that the 74 | `configure' script does not know about. Run `./configure --help' for 75 | details on some of the pertinent environment variables. 76 | 77 | You can give `configure' initial values for configuration parameters 78 | by setting variables in the command line or in the environment. Here 79 | is an example: 80 | 81 | ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix 82 | 83 | *Note Defining Variables::, for more details. 84 | 85 | Compiling For Multiple Architectures 86 | ==================================== 87 | 88 | You can compile the package for more than one kind of computer at the 89 | same time, by placing the object files for each architecture in their 90 | own directory. To do this, you must use a version of `make' that 91 | supports the `VPATH' variable, such as GNU `make'. `cd' to the 92 | directory where you want the object files and executables to go and run 93 | the `configure' script. `configure' automatically checks for the 94 | source code in the directory that `configure' is in and in `..'. 95 | 96 | If you have to use a `make' that does not support the `VPATH' 97 | variable, you have to compile the package for one architecture at a 98 | time in the source code directory. After you have installed the 99 | package for one architecture, use `make distclean' before reconfiguring 100 | for another architecture. 101 | 102 | Installation Names 103 | ================== 104 | 105 | By default, `make install' installs the package's commands under 106 | `/usr/local/bin', include files under `/usr/local/include', etc. You 107 | can specify an installation prefix other than `/usr/local' by giving 108 | `configure' the option `--prefix=PREFIX'. 109 | 110 | You can specify separate installation prefixes for 111 | architecture-specific files and architecture-independent files. If you 112 | pass the option `--exec-prefix=PREFIX' to `configure', the package uses 113 | PREFIX as the prefix for installing programs and libraries. 114 | Documentation and other data files still use the regular prefix. 115 | 116 | In addition, if you use an unusual directory layout you can give 117 | options like `--bindir=DIR' to specify different values for particular 118 | kinds of files. Run `configure --help' for a list of the directories 119 | you can set and what kinds of files go in them. 120 | 121 | If the package supports it, you can cause programs to be installed 122 | with an extra prefix or suffix on their names by giving `configure' the 123 | option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. 124 | 125 | Optional Features 126 | ================= 127 | 128 | Some packages pay attention to `--enable-FEATURE' options to 129 | `configure', where FEATURE indicates an optional part of the package. 130 | They may also pay attention to `--with-PACKAGE' options, where PACKAGE 131 | is something like `gnu-as' or `x' (for the X Window System). The 132 | `README' should mention any `--enable-' and `--with-' options that the 133 | package recognizes. 134 | 135 | For packages that use the X Window System, `configure' can usually 136 | find the X include and library files automatically, but if it doesn't, 137 | you can use the `configure' options `--x-includes=DIR' and 138 | `--x-libraries=DIR' to specify their locations. 139 | 140 | Specifying the System Type 141 | ========================== 142 | 143 | There may be some features `configure' cannot figure out automatically, 144 | but needs to determine by the type of machine the package will run on. 145 | Usually, assuming the package is built to be run on the _same_ 146 | architectures, `configure' can figure that out, but if it prints a 147 | message saying it cannot guess the machine type, give it the 148 | `--build=TYPE' option. TYPE can either be a short name for the system 149 | type, such as `sun4', or a canonical name which has the form: 150 | 151 | CPU-COMPANY-SYSTEM 152 | 153 | where SYSTEM can have one of these forms: 154 | 155 | OS KERNEL-OS 156 | 157 | See the file `config.sub' for the possible values of each field. If 158 | `config.sub' isn't included in this package, then this package doesn't 159 | need to know the machine type. 160 | 161 | If you are _building_ compiler tools for cross-compiling, you should 162 | use the option `--target=TYPE' to select the type of system they will 163 | produce code for. 164 | 165 | If you want to _use_ a cross compiler, that generates code for a 166 | platform different from the build platform, you should specify the 167 | "host" platform (i.e., that on which the generated programs will 168 | eventually be run) with `--host=TYPE'. 169 | 170 | Sharing Defaults 171 | ================ 172 | 173 | If you want to set default values for `configure' scripts to share, you 174 | can create a site shell script called `config.site' that gives default 175 | values for variables like `CC', `cache_file', and `prefix'. 176 | `configure' looks for `PREFIX/share/config.site' if it exists, then 177 | `PREFIX/etc/config.site' if it exists. Or, you can set the 178 | `CONFIG_SITE' environment variable to the location of the site script. 179 | A warning: not all `configure' scripts look for a site script. 180 | 181 | Defining Variables 182 | ================== 183 | 184 | Variables not defined in a site shell script can be set in the 185 | environment passed to `configure'. However, some packages may run 186 | configure again during the build, and the customized values of these 187 | variables may be lost. In order to avoid this problem, you should set 188 | them in the `configure' command line, using `VAR=value'. For example: 189 | 190 | ./configure CC=/usr/local2/bin/gcc 191 | 192 | causes the specified `gcc' to be used as the C compiler (unless it is 193 | overridden in the site shell script). Here is a another example: 194 | 195 | /bin/bash ./configure CONFIG_SHELL=/bin/bash 196 | 197 | Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent 198 | configuration-related scripts to be executed by `/bin/bash'. 199 | 200 | `configure' Invocation 201 | ====================== 202 | 203 | `configure' recognizes the following options to control how it operates. 204 | 205 | `--help' 206 | `-h' 207 | Print a summary of the options to `configure', and exit. 208 | 209 | `--version' 210 | `-V' 211 | Print the version of Autoconf used to generate the `configure' 212 | script, and exit. 213 | 214 | `--cache-file=FILE' 215 | Enable the cache: use and save the results of the tests in FILE, 216 | traditionally `config.cache'. FILE defaults to `/dev/null' to 217 | disable caching. 218 | 219 | `--config-cache' 220 | `-C' 221 | Alias for `--cache-file=config.cache'. 222 | 223 | `--quiet' 224 | `--silent' 225 | `-q' 226 | Do not print messages saying which checks are being made. To 227 | suppress all normal output, redirect it to `/dev/null' (any error 228 | messages will still be shown). 229 | 230 | `--srcdir=DIR' 231 | Look for the package's source code in directory DIR. Usually 232 | `configure' can determine that directory automatically. 233 | 234 | `configure' also accepts some other, not widely useful, options. Run 235 | `configure --help' for more details. 236 | 237 | -------------------------------------------------------------------------------- /sqlite-3.6.23.1/install-sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # install - install a program, script, or datafile 3 | 4 | scriptversion=2005-05-14.22 5 | 6 | # This originates from X11R5 (mit/util/scripts/install.sh), which was 7 | # later released in X11R6 (xc/config/util/install.sh) with the 8 | # following copyright and license. 9 | # 10 | # Copyright (C) 1994 X Consortium 11 | # 12 | # Permission is hereby granted, free of charge, to any person obtaining a copy 13 | # of this software and associated documentation files (the "Software"), to 14 | # deal in the Software without restriction, including without limitation the 15 | # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 16 | # sell copies of the Software, and to permit persons to whom the Software is 17 | # furnished to do so, subject to the following conditions: 18 | # 19 | # The above copyright notice and this permission notice shall be included in 20 | # all copies or substantial portions of the Software. 21 | # 22 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 23 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 24 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 25 | # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 26 | # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- 27 | # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 28 | # 29 | # Except as contained in this notice, the name of the X Consortium shall not 30 | # be used in advertising or otherwise to promote the sale, use or other deal- 31 | # ings in this Software without prior written authorization from the X Consor- 32 | # tium. 33 | # 34 | # 35 | # FSF changes to this file are in the public domain. 36 | # 37 | # Calling this script install-sh is preferred over install.sh, to prevent 38 | # `make' implicit rules from creating a file called install from it 39 | # when there is no Makefile. 40 | # 41 | # This script is compatible with the BSD install script, but was written 42 | # from scratch. It can only install one file at a time, a restriction 43 | # shared with many OS's install programs. 44 | 45 | # set DOITPROG to echo to test this script 46 | 47 | # Don't use :- since 4.3BSD and earlier shells don't like it. 48 | doit="${DOITPROG-}" 49 | 50 | # put in absolute paths if you don't have them in your path; or use env. vars. 51 | 52 | mvprog="${MVPROG-mv}" 53 | cpprog="${CPPROG-cp}" 54 | chmodprog="${CHMODPROG-chmod}" 55 | chownprog="${CHOWNPROG-chown}" 56 | chgrpprog="${CHGRPPROG-chgrp}" 57 | stripprog="${STRIPPROG-strip}" 58 | rmprog="${RMPROG-rm}" 59 | mkdirprog="${MKDIRPROG-mkdir}" 60 | 61 | chmodcmd="$chmodprog 0755" 62 | chowncmd= 63 | chgrpcmd= 64 | stripcmd= 65 | rmcmd="$rmprog -f" 66 | mvcmd="$mvprog" 67 | src= 68 | dst= 69 | dir_arg= 70 | dstarg= 71 | no_target_directory= 72 | 73 | usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE 74 | or: $0 [OPTION]... SRCFILES... DIRECTORY 75 | or: $0 [OPTION]... -t DIRECTORY SRCFILES... 76 | or: $0 [OPTION]... -d DIRECTORIES... 77 | 78 | In the 1st form, copy SRCFILE to DSTFILE. 79 | In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. 80 | In the 4th, create DIRECTORIES. 81 | 82 | Options: 83 | -c (ignored) 84 | -d create directories instead of installing files. 85 | -g GROUP $chgrpprog installed files to GROUP. 86 | -m MODE $chmodprog installed files to MODE. 87 | -o USER $chownprog installed files to USER. 88 | -s $stripprog installed files. 89 | -t DIRECTORY install into DIRECTORY. 90 | -T report an error if DSTFILE is a directory. 91 | --help display this help and exit. 92 | --version display version info and exit. 93 | 94 | Environment variables override the default commands: 95 | CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG 96 | " 97 | 98 | while test -n "$1"; do 99 | case $1 in 100 | -c) shift 101 | continue;; 102 | 103 | -d) dir_arg=true 104 | shift 105 | continue;; 106 | 107 | -g) chgrpcmd="$chgrpprog $2" 108 | shift 109 | shift 110 | continue;; 111 | 112 | --help) echo "$usage"; exit $?;; 113 | 114 | -m) chmodcmd="$chmodprog $2" 115 | shift 116 | shift 117 | continue;; 118 | 119 | -o) chowncmd="$chownprog $2" 120 | shift 121 | shift 122 | continue;; 123 | 124 | -s) stripcmd=$stripprog 125 | shift 126 | continue;; 127 | 128 | -t) dstarg=$2 129 | shift 130 | shift 131 | continue;; 132 | 133 | -T) no_target_directory=true 134 | shift 135 | continue;; 136 | 137 | --version) echo "$0 $scriptversion"; exit $?;; 138 | 139 | *) # When -d is used, all remaining arguments are directories to create. 140 | # When -t is used, the destination is already specified. 141 | test -n "$dir_arg$dstarg" && break 142 | # Otherwise, the last argument is the destination. Remove it from $@. 143 | for arg 144 | do 145 | if test -n "$dstarg"; then 146 | # $@ is not empty: it contains at least $arg. 147 | set fnord "$@" "$dstarg" 148 | shift # fnord 149 | fi 150 | shift # arg 151 | dstarg=$arg 152 | done 153 | break;; 154 | esac 155 | done 156 | 157 | if test -z "$1"; then 158 | if test -z "$dir_arg"; then 159 | echo "$0: no input file specified." >&2 160 | exit 1 161 | fi 162 | # It's OK to call `install-sh -d' without argument. 163 | # This can happen when creating conditional directories. 164 | exit 0 165 | fi 166 | 167 | for src 168 | do 169 | # Protect names starting with `-'. 170 | case $src in 171 | -*) src=./$src ;; 172 | esac 173 | 174 | if test -n "$dir_arg"; then 175 | dst=$src 176 | src= 177 | 178 | if test -d "$dst"; then 179 | mkdircmd=: 180 | chmodcmd= 181 | else 182 | mkdircmd=$mkdirprog 183 | fi 184 | else 185 | # Waiting for this to be detected by the "$cpprog $src $dsttmp" command 186 | # might cause directories to be created, which would be especially bad 187 | # if $src (and thus $dsttmp) contains '*'. 188 | if test ! -f "$src" && test ! -d "$src"; then 189 | echo "$0: $src does not exist." >&2 190 | exit 1 191 | fi 192 | 193 | if test -z "$dstarg"; then 194 | echo "$0: no destination specified." >&2 195 | exit 1 196 | fi 197 | 198 | dst=$dstarg 199 | # Protect names starting with `-'. 200 | case $dst in 201 | -*) dst=./$dst ;; 202 | esac 203 | 204 | # If destination is a directory, append the input filename; won't work 205 | # if double slashes aren't ignored. 206 | if test -d "$dst"; then 207 | if test -n "$no_target_directory"; then 208 | echo "$0: $dstarg: Is a directory" >&2 209 | exit 1 210 | fi 211 | dst=$dst/`basename "$src"` 212 | fi 213 | fi 214 | 215 | # This sed command emulates the dirname command. 216 | dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` 217 | 218 | # Make sure that the destination directory exists. 219 | 220 | # Skip lots of stat calls in the usual case. 221 | if test ! -d "$dstdir"; then 222 | defaultIFS=' 223 | ' 224 | IFS="${IFS-$defaultIFS}" 225 | 226 | oIFS=$IFS 227 | # Some sh's can't handle IFS=/ for some reason. 228 | IFS='%' 229 | set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` 230 | shift 231 | IFS=$oIFS 232 | 233 | pathcomp= 234 | 235 | while test $# -ne 0 ; do 236 | pathcomp=$pathcomp$1 237 | shift 238 | if test ! -d "$pathcomp"; then 239 | $mkdirprog "$pathcomp" 240 | # mkdir can fail with a `File exist' error in case several 241 | # install-sh are creating the directory concurrently. This 242 | # is OK. 243 | test -d "$pathcomp" || exit 244 | fi 245 | pathcomp=$pathcomp/ 246 | done 247 | fi 248 | 249 | if test -n "$dir_arg"; then 250 | $doit $mkdircmd "$dst" \ 251 | && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ 252 | && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ 253 | && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ 254 | && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } 255 | 256 | else 257 | dstfile=`basename "$dst"` 258 | 259 | # Make a couple of temp file names in the proper directory. 260 | dsttmp=$dstdir/_inst.$$_ 261 | rmtmp=$dstdir/_rm.$$_ 262 | 263 | # Trap to clean up those temp files at exit. 264 | trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 265 | trap '(exit $?); exit' 1 2 13 15 266 | 267 | # Copy the file name to the temp name. 268 | $doit $cpprog "$src" "$dsttmp" && 269 | 270 | # and set any options; do chmod last to preserve setuid bits. 271 | # 272 | # If any of these fail, we abort the whole thing. If we want to 273 | # ignore errors from any of these, just make sure not to ignore 274 | # errors from the above "$doit $cpprog $src $dsttmp" command. 275 | # 276 | { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ 277 | && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ 278 | && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ 279 | && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && 280 | 281 | # Now rename the file to the real destination. 282 | { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ 283 | || { 284 | # The rename failed, perhaps because mv can't rename something else 285 | # to itself, or perhaps because mv is so ancient that it does not 286 | # support -f. 287 | 288 | # Now remove or move aside any old file at destination location. 289 | # We try this two ways since rm can't unlink itself on some 290 | # systems and the destination file might be busy for other 291 | # reasons. In this case, the final cleanup might fail but the new 292 | # file should still install successfully. 293 | { 294 | if test -f "$dstdir/$dstfile"; then 295 | $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ 296 | || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ 297 | || { 298 | echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 299 | (exit 1); exit 1 300 | } 301 | else 302 | : 303 | fi 304 | } && 305 | 306 | # Now rename the file to the real destination. 307 | $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" 308 | } 309 | } 310 | fi || { (exit 1); exit 1; } 311 | done 312 | 313 | # The final little trick to "correctly" pass the exit status to the exit trap. 314 | { 315 | (exit 0); exit 0 316 | } 317 | 318 | # Local variables: 319 | # eval: (add-hook 'write-file-hooks 'time-stamp) 320 | # time-stamp-start: "scriptversion=" 321 | # time-stamp-format: "%:y-%02m-%02d.%02H" 322 | # time-stamp-end: "$" 323 | # End: 324 | -------------------------------------------------------------------------------- /sqlite-3.6.23.1/missing: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Common stub for a few missing GNU programs while installing. 3 | 4 | scriptversion=2005-06-08.21 5 | 6 | # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 7 | # Free Software Foundation, Inc. 8 | # Originally by Fran,cois Pinard , 1996. 9 | 10 | # This program is free software; you can redistribute it and/or modify 11 | # it under the terms of the GNU General Public License as published by 12 | # the Free Software Foundation; either version 2, or (at your option) 13 | # any later version. 14 | 15 | # This program is distributed in the hope that it will be useful, 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 | # GNU General Public License for more details. 19 | 20 | # You should have received a copy of the GNU General Public License 21 | # along with this program; if not, write to the Free Software 22 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 23 | # 02110-1301, USA. 24 | 25 | # As a special exception to the GNU General Public License, if you 26 | # distribute this file as part of a program that contains a 27 | # configuration script generated by Autoconf, you may include it under 28 | # the same distribution terms that you use for the rest of that program. 29 | 30 | if test $# -eq 0; then 31 | echo 1>&2 "Try \`$0 --help' for more information" 32 | exit 1 33 | fi 34 | 35 | run=: 36 | 37 | # In the cases where this matters, `missing' is being run in the 38 | # srcdir already. 39 | if test -f configure.ac; then 40 | configure_ac=configure.ac 41 | else 42 | configure_ac=configure.in 43 | fi 44 | 45 | msg="missing on your system" 46 | 47 | case "$1" in 48 | --run) 49 | # Try to run requested program, and just exit if it succeeds. 50 | run= 51 | shift 52 | "$@" && exit 0 53 | # Exit code 63 means version mismatch. This often happens 54 | # when the user try to use an ancient version of a tool on 55 | # a file that requires a minimum version. In this case we 56 | # we should proceed has if the program had been absent, or 57 | # if --run hadn't been passed. 58 | if test $? = 63; then 59 | run=: 60 | msg="probably too old" 61 | fi 62 | ;; 63 | 64 | -h|--h|--he|--hel|--help) 65 | echo "\ 66 | $0 [OPTION]... PROGRAM [ARGUMENT]... 67 | 68 | Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an 69 | error status if there is no known handling for PROGRAM. 70 | 71 | Options: 72 | -h, --help display this help and exit 73 | -v, --version output version information and exit 74 | --run try to run the given command, and emulate it if it fails 75 | 76 | Supported PROGRAM values: 77 | aclocal touch file \`aclocal.m4' 78 | autoconf touch file \`configure' 79 | autoheader touch file \`config.h.in' 80 | automake touch all \`Makefile.in' files 81 | bison create \`y.tab.[ch]', if possible, from existing .[ch] 82 | flex create \`lex.yy.c', if possible, from existing .c 83 | help2man touch the output file 84 | lex create \`lex.yy.c', if possible, from existing .c 85 | makeinfo touch the output file 86 | tar try tar, gnutar, gtar, then tar without non-portable flags 87 | yacc create \`y.tab.[ch]', if possible, from existing .[ch] 88 | 89 | Send bug reports to ." 90 | exit $? 91 | ;; 92 | 93 | -v|--v|--ve|--ver|--vers|--versi|--versio|--version) 94 | echo "missing $scriptversion (GNU Automake)" 95 | exit $? 96 | ;; 97 | 98 | -*) 99 | echo 1>&2 "$0: Unknown \`$1' option" 100 | echo 1>&2 "Try \`$0 --help' for more information" 101 | exit 1 102 | ;; 103 | 104 | esac 105 | 106 | # Now exit if we have it, but it failed. Also exit now if we 107 | # don't have it and --version was passed (most likely to detect 108 | # the program). 109 | case "$1" in 110 | lex|yacc) 111 | # Not GNU programs, they don't have --version. 112 | ;; 113 | 114 | tar) 115 | if test -n "$run"; then 116 | echo 1>&2 "ERROR: \`tar' requires --run" 117 | exit 1 118 | elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 119 | exit 1 120 | fi 121 | ;; 122 | 123 | *) 124 | if test -z "$run" && ($1 --version) > /dev/null 2>&1; then 125 | # We have it, but it failed. 126 | exit 1 127 | elif test "x$2" = "x--version" || test "x$2" = "x--help"; then 128 | # Could not run --version or --help. This is probably someone 129 | # running `$TOOL --version' or `$TOOL --help' to check whether 130 | # $TOOL exists and not knowing $TOOL uses missing. 131 | exit 1 132 | fi 133 | ;; 134 | esac 135 | 136 | # If it does not exist, or fails to run (possibly an outdated version), 137 | # try to emulate it. 138 | case "$1" in 139 | aclocal*) 140 | echo 1>&2 "\ 141 | WARNING: \`$1' is $msg. You should only need it if 142 | you modified \`acinclude.m4' or \`${configure_ac}'. You might want 143 | to install the \`Automake' and \`Perl' packages. Grab them from 144 | any GNU archive site." 145 | touch aclocal.m4 146 | ;; 147 | 148 | autoconf) 149 | echo 1>&2 "\ 150 | WARNING: \`$1' is $msg. You should only need it if 151 | you modified \`${configure_ac}'. You might want to install the 152 | \`Autoconf' and \`GNU m4' packages. Grab them from any GNU 153 | archive site." 154 | touch configure 155 | ;; 156 | 157 | autoheader) 158 | echo 1>&2 "\ 159 | WARNING: \`$1' is $msg. You should only need it if 160 | you modified \`acconfig.h' or \`${configure_ac}'. You might want 161 | to install the \`Autoconf' and \`GNU m4' packages. Grab them 162 | from any GNU archive site." 163 | files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` 164 | test -z "$files" && files="config.h" 165 | touch_files= 166 | for f in $files; do 167 | case "$f" in 168 | *:*) touch_files="$touch_files "`echo "$f" | 169 | sed -e 's/^[^:]*://' -e 's/:.*//'`;; 170 | *) touch_files="$touch_files $f.in";; 171 | esac 172 | done 173 | touch $touch_files 174 | ;; 175 | 176 | automake*) 177 | echo 1>&2 "\ 178 | WARNING: \`$1' is $msg. You should only need it if 179 | you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. 180 | You might want to install the \`Automake' and \`Perl' packages. 181 | Grab them from any GNU archive site." 182 | find . -type f -name Makefile.am -print | 183 | sed 's/\.am$/.in/' | 184 | while read f; do touch "$f"; done 185 | ;; 186 | 187 | autom4te) 188 | echo 1>&2 "\ 189 | WARNING: \`$1' is needed, but is $msg. 190 | You might have modified some files without having the 191 | proper tools for further handling them. 192 | You can get \`$1' as part of \`Autoconf' from any GNU 193 | archive site." 194 | 195 | file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` 196 | test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` 197 | if test -f "$file"; then 198 | touch $file 199 | else 200 | test -z "$file" || exec >$file 201 | echo "#! /bin/sh" 202 | echo "# Created by GNU Automake missing as a replacement of" 203 | echo "# $ $@" 204 | echo "exit 0" 205 | chmod +x $file 206 | exit 1 207 | fi 208 | ;; 209 | 210 | bison|yacc) 211 | echo 1>&2 "\ 212 | WARNING: \`$1' $msg. You should only need it if 213 | you modified a \`.y' file. You may need the \`Bison' package 214 | in order for those modifications to take effect. You can get 215 | \`Bison' from any GNU archive site." 216 | rm -f y.tab.c y.tab.h 217 | if [ $# -ne 1 ]; then 218 | eval LASTARG="\${$#}" 219 | case "$LASTARG" in 220 | *.y) 221 | SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` 222 | if [ -f "$SRCFILE" ]; then 223 | cp "$SRCFILE" y.tab.c 224 | fi 225 | SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` 226 | if [ -f "$SRCFILE" ]; then 227 | cp "$SRCFILE" y.tab.h 228 | fi 229 | ;; 230 | esac 231 | fi 232 | if [ ! -f y.tab.h ]; then 233 | echo >y.tab.h 234 | fi 235 | if [ ! -f y.tab.c ]; then 236 | echo 'main() { return 0; }' >y.tab.c 237 | fi 238 | ;; 239 | 240 | lex|flex) 241 | echo 1>&2 "\ 242 | WARNING: \`$1' is $msg. You should only need it if 243 | you modified a \`.l' file. You may need the \`Flex' package 244 | in order for those modifications to take effect. You can get 245 | \`Flex' from any GNU archive site." 246 | rm -f lex.yy.c 247 | if [ $# -ne 1 ]; then 248 | eval LASTARG="\${$#}" 249 | case "$LASTARG" in 250 | *.l) 251 | SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` 252 | if [ -f "$SRCFILE" ]; then 253 | cp "$SRCFILE" lex.yy.c 254 | fi 255 | ;; 256 | esac 257 | fi 258 | if [ ! -f lex.yy.c ]; then 259 | echo 'main() { return 0; }' >lex.yy.c 260 | fi 261 | ;; 262 | 263 | help2man) 264 | echo 1>&2 "\ 265 | WARNING: \`$1' is $msg. You should only need it if 266 | you modified a dependency of a manual page. You may need the 267 | \`Help2man' package in order for those modifications to take 268 | effect. You can get \`Help2man' from any GNU archive site." 269 | 270 | file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` 271 | if test -z "$file"; then 272 | file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` 273 | fi 274 | if [ -f "$file" ]; then 275 | touch $file 276 | else 277 | test -z "$file" || exec >$file 278 | echo ".ab help2man is required to generate this page" 279 | exit 1 280 | fi 281 | ;; 282 | 283 | makeinfo) 284 | echo 1>&2 "\ 285 | WARNING: \`$1' is $msg. You should only need it if 286 | you modified a \`.texi' or \`.texinfo' file, or any other file 287 | indirectly affecting the aspect of the manual. The spurious 288 | call might also be the consequence of using a buggy \`make' (AIX, 289 | DU, IRIX). You might want to install the \`Texinfo' package or 290 | the \`GNU make' package. Grab either from any GNU archive site." 291 | # The file to touch is that specified with -o ... 292 | file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` 293 | if test -z "$file"; then 294 | # ... or it is the one specified with @setfilename ... 295 | infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` 296 | file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` 297 | # ... or it is derived from the source name (dir/f.texi becomes f.info) 298 | test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info 299 | fi 300 | # If the file does not exist, the user really needs makeinfo; 301 | # let's fail without touching anything. 302 | test -f $file || exit 1 303 | touch $file 304 | ;; 305 | 306 | tar) 307 | shift 308 | 309 | # We have already tried tar in the generic part. 310 | # Look for gnutar/gtar before invocation to avoid ugly error 311 | # messages. 312 | if (gnutar --version > /dev/null 2>&1); then 313 | gnutar "$@" && exit 0 314 | fi 315 | if (gtar --version > /dev/null 2>&1); then 316 | gtar "$@" && exit 0 317 | fi 318 | firstarg="$1" 319 | if shift; then 320 | case "$firstarg" in 321 | *o*) 322 | firstarg=`echo "$firstarg" | sed s/o//` 323 | tar "$firstarg" "$@" && exit 0 324 | ;; 325 | esac 326 | case "$firstarg" in 327 | *h*) 328 | firstarg=`echo "$firstarg" | sed s/h//` 329 | tar "$firstarg" "$@" && exit 0 330 | ;; 331 | esac 332 | fi 333 | 334 | echo 1>&2 "\ 335 | WARNING: I can't seem to be able to run \`tar' with the given arguments. 336 | You may want to install GNU tar or Free paxutils, or check the 337 | command line arguments." 338 | exit 1 339 | ;; 340 | 341 | *) 342 | echo 1>&2 "\ 343 | WARNING: \`$1' is needed, and is $msg. 344 | You might have modified some files without having the 345 | proper tools for further handling them. Check the \`README' file, 346 | it often tells you about the needed prerequisites for installing 347 | this package. You may also peek at any GNU archive site, in case 348 | some other package would contain this missing \`$1' program." 349 | exit 1 350 | ;; 351 | esac 352 | 353 | exit 0 354 | 355 | # Local variables: 356 | # eval: (add-hook 'write-file-hooks 'time-stamp) 357 | # time-stamp-start: "scriptversion=" 358 | # time-stamp-format: "%:y-%02m-%02d.%02H" 359 | # time-stamp-end: "$" 360 | # End: 361 | -------------------------------------------------------------------------------- /sqlite-3.6.23.1/depcomp: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # depcomp - compile a program generating dependencies as side-effects 3 | 4 | scriptversion=2005-07-09.11 5 | 6 | # Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. 7 | 8 | # This program is free software; you can redistribute it and/or modify 9 | # it under the terms of the GNU General Public License as published by 10 | # the Free Software Foundation; either version 2, or (at your option) 11 | # any later version. 12 | 13 | # This program is distributed in the hope that it will be useful, 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU General Public License for more details. 17 | 18 | # You should have received a copy of the GNU General Public License 19 | # along with this program; if not, write to the Free Software 20 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 21 | # 02110-1301, USA. 22 | 23 | # As a special exception to the GNU General Public License, if you 24 | # distribute this file as part of a program that contains a 25 | # configuration script generated by Autoconf, you may include it under 26 | # the same distribution terms that you use for the rest of that program. 27 | 28 | # Originally written by Alexandre Oliva . 29 | 30 | case $1 in 31 | '') 32 | echo "$0: No command. Try \`$0 --help' for more information." 1>&2 33 | exit 1; 34 | ;; 35 | -h | --h*) 36 | cat <<\EOF 37 | Usage: depcomp [--help] [--version] PROGRAM [ARGS] 38 | 39 | Run PROGRAMS ARGS to compile a file, generating dependencies 40 | as side-effects. 41 | 42 | Environment variables: 43 | depmode Dependency tracking mode. 44 | source Source file read by `PROGRAMS ARGS'. 45 | object Object file output by `PROGRAMS ARGS'. 46 | DEPDIR directory where to store dependencies. 47 | depfile Dependency file to output. 48 | tmpdepfile Temporary file to use when outputing dependencies. 49 | libtool Whether libtool is used (yes/no). 50 | 51 | Report bugs to . 52 | EOF 53 | exit $? 54 | ;; 55 | -v | --v*) 56 | echo "depcomp $scriptversion" 57 | exit $? 58 | ;; 59 | esac 60 | 61 | if test -z "$depmode" || test -z "$source" || test -z "$object"; then 62 | echo "depcomp: Variables source, object and depmode must be set" 1>&2 63 | exit 1 64 | fi 65 | 66 | # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. 67 | depfile=${depfile-`echo "$object" | 68 | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} 69 | tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} 70 | 71 | rm -f "$tmpdepfile" 72 | 73 | # Some modes work just like other modes, but use different flags. We 74 | # parameterize here, but still list the modes in the big case below, 75 | # to make depend.m4 easier to write. Note that we *cannot* use a case 76 | # here, because this file can only contain one case statement. 77 | if test "$depmode" = hp; then 78 | # HP compiler uses -M and no extra arg. 79 | gccflag=-M 80 | depmode=gcc 81 | fi 82 | 83 | if test "$depmode" = dashXmstdout; then 84 | # This is just like dashmstdout with a different argument. 85 | dashmflag=-xM 86 | depmode=dashmstdout 87 | fi 88 | 89 | case "$depmode" in 90 | gcc3) 91 | ## gcc 3 implements dependency tracking that does exactly what 92 | ## we want. Yay! Note: for some reason libtool 1.4 doesn't like 93 | ## it if -MD -MP comes after the -MF stuff. Hmm. 94 | "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" 95 | stat=$? 96 | if test $stat -eq 0; then : 97 | else 98 | rm -f "$tmpdepfile" 99 | exit $stat 100 | fi 101 | mv "$tmpdepfile" "$depfile" 102 | ;; 103 | 104 | gcc) 105 | ## There are various ways to get dependency output from gcc. Here's 106 | ## why we pick this rather obscure method: 107 | ## - Don't want to use -MD because we'd like the dependencies to end 108 | ## up in a subdir. Having to rename by hand is ugly. 109 | ## (We might end up doing this anyway to support other compilers.) 110 | ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like 111 | ## -MM, not -M (despite what the docs say). 112 | ## - Using -M directly means running the compiler twice (even worse 113 | ## than renaming). 114 | if test -z "$gccflag"; then 115 | gccflag=-MD, 116 | fi 117 | "$@" -Wp,"$gccflag$tmpdepfile" 118 | stat=$? 119 | if test $stat -eq 0; then : 120 | else 121 | rm -f "$tmpdepfile" 122 | exit $stat 123 | fi 124 | rm -f "$depfile" 125 | echo "$object : \\" > "$depfile" 126 | alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 127 | ## The second -e expression handles DOS-style file names with drive letters. 128 | sed -e 's/^[^:]*: / /' \ 129 | -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" 130 | ## This next piece of magic avoids the `deleted header file' problem. 131 | ## The problem is that when a header file which appears in a .P file 132 | ## is deleted, the dependency causes make to die (because there is 133 | ## typically no way to rebuild the header). We avoid this by adding 134 | ## dummy dependencies for each header file. Too bad gcc doesn't do 135 | ## this for us directly. 136 | tr ' ' ' 137 | ' < "$tmpdepfile" | 138 | ## Some versions of gcc put a space before the `:'. On the theory 139 | ## that the space means something, we add a space to the output as 140 | ## well. 141 | ## Some versions of the HPUX 10.20 sed can't process this invocation 142 | ## correctly. Breaking it into two sed invocations is a workaround. 143 | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 144 | rm -f "$tmpdepfile" 145 | ;; 146 | 147 | hp) 148 | # This case exists only to let depend.m4 do its work. It works by 149 | # looking at the text of this script. This case will never be run, 150 | # since it is checked for above. 151 | exit 1 152 | ;; 153 | 154 | sgi) 155 | if test "$libtool" = yes; then 156 | "$@" "-Wp,-MDupdate,$tmpdepfile" 157 | else 158 | "$@" -MDupdate "$tmpdepfile" 159 | fi 160 | stat=$? 161 | if test $stat -eq 0; then : 162 | else 163 | rm -f "$tmpdepfile" 164 | exit $stat 165 | fi 166 | rm -f "$depfile" 167 | 168 | if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files 169 | echo "$object : \\" > "$depfile" 170 | 171 | # Clip off the initial element (the dependent). Don't try to be 172 | # clever and replace this with sed code, as IRIX sed won't handle 173 | # lines with more than a fixed number of characters (4096 in 174 | # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; 175 | # the IRIX cc adds comments like `#:fec' to the end of the 176 | # dependency line. 177 | tr ' ' ' 178 | ' < "$tmpdepfile" \ 179 | | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ 180 | tr ' 181 | ' ' ' >> $depfile 182 | echo >> $depfile 183 | 184 | # The second pass generates a dummy entry for each header file. 185 | tr ' ' ' 186 | ' < "$tmpdepfile" \ 187 | | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ 188 | >> $depfile 189 | else 190 | # The sourcefile does not contain any dependencies, so just 191 | # store a dummy comment line, to avoid errors with the Makefile 192 | # "include basename.Plo" scheme. 193 | echo "#dummy" > "$depfile" 194 | fi 195 | rm -f "$tmpdepfile" 196 | ;; 197 | 198 | aix) 199 | # The C for AIX Compiler uses -M and outputs the dependencies 200 | # in a .u file. In older versions, this file always lives in the 201 | # current directory. Also, the AIX compiler puts `$object:' at the 202 | # start of each line; $object doesn't have directory information. 203 | # Version 6 uses the directory in both cases. 204 | stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` 205 | tmpdepfile="$stripped.u" 206 | if test "$libtool" = yes; then 207 | "$@" -Wc,-M 208 | else 209 | "$@" -M 210 | fi 211 | stat=$? 212 | 213 | if test -f "$tmpdepfile"; then : 214 | else 215 | stripped=`echo "$stripped" | sed 's,^.*/,,'` 216 | tmpdepfile="$stripped.u" 217 | fi 218 | 219 | if test $stat -eq 0; then : 220 | else 221 | rm -f "$tmpdepfile" 222 | exit $stat 223 | fi 224 | 225 | if test -f "$tmpdepfile"; then 226 | outname="$stripped.o" 227 | # Each line is of the form `foo.o: dependent.h'. 228 | # Do two passes, one to just change these to 229 | # `$object: dependent.h' and one to simply `dependent.h:'. 230 | sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" 231 | sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" 232 | else 233 | # The sourcefile does not contain any dependencies, so just 234 | # store a dummy comment line, to avoid errors with the Makefile 235 | # "include basename.Plo" scheme. 236 | echo "#dummy" > "$depfile" 237 | fi 238 | rm -f "$tmpdepfile" 239 | ;; 240 | 241 | icc) 242 | # Intel's C compiler understands `-MD -MF file'. However on 243 | # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c 244 | # ICC 7.0 will fill foo.d with something like 245 | # foo.o: sub/foo.c 246 | # foo.o: sub/foo.h 247 | # which is wrong. We want: 248 | # sub/foo.o: sub/foo.c 249 | # sub/foo.o: sub/foo.h 250 | # sub/foo.c: 251 | # sub/foo.h: 252 | # ICC 7.1 will output 253 | # foo.o: sub/foo.c sub/foo.h 254 | # and will wrap long lines using \ : 255 | # foo.o: sub/foo.c ... \ 256 | # sub/foo.h ... \ 257 | # ... 258 | 259 | "$@" -MD -MF "$tmpdepfile" 260 | stat=$? 261 | if test $stat -eq 0; then : 262 | else 263 | rm -f "$tmpdepfile" 264 | exit $stat 265 | fi 266 | rm -f "$depfile" 267 | # Each line is of the form `foo.o: dependent.h', 268 | # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. 269 | # Do two passes, one to just change these to 270 | # `$object: dependent.h' and one to simply `dependent.h:'. 271 | sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" 272 | # Some versions of the HPUX 10.20 sed can't process this invocation 273 | # correctly. Breaking it into two sed invocations is a workaround. 274 | sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | 275 | sed -e 's/$/ :/' >> "$depfile" 276 | rm -f "$tmpdepfile" 277 | ;; 278 | 279 | tru64) 280 | # The Tru64 compiler uses -MD to generate dependencies as a side 281 | # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. 282 | # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put 283 | # dependencies in `foo.d' instead, so we check for that too. 284 | # Subdirectories are respected. 285 | dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` 286 | test "x$dir" = "x$object" && dir= 287 | base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` 288 | 289 | if test "$libtool" = yes; then 290 | # With Tru64 cc, shared objects can also be used to make a 291 | # static library. This mecanism is used in libtool 1.4 series to 292 | # handle both shared and static libraries in a single compilation. 293 | # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. 294 | # 295 | # With libtool 1.5 this exception was removed, and libtool now 296 | # generates 2 separate objects for the 2 libraries. These two 297 | # compilations output dependencies in in $dir.libs/$base.o.d and 298 | # in $dir$base.o.d. We have to check for both files, because 299 | # one of the two compilations can be disabled. We should prefer 300 | # $dir$base.o.d over $dir.libs/$base.o.d because the latter is 301 | # automatically cleaned when .libs/ is deleted, while ignoring 302 | # the former would cause a distcleancheck panic. 303 | tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 304 | tmpdepfile2=$dir$base.o.d # libtool 1.5 305 | tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 306 | tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 307 | "$@" -Wc,-MD 308 | else 309 | tmpdepfile1=$dir$base.o.d 310 | tmpdepfile2=$dir$base.d 311 | tmpdepfile3=$dir$base.d 312 | tmpdepfile4=$dir$base.d 313 | "$@" -MD 314 | fi 315 | 316 | stat=$? 317 | if test $stat -eq 0; then : 318 | else 319 | rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 320 | exit $stat 321 | fi 322 | 323 | for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" 324 | do 325 | test -f "$tmpdepfile" && break 326 | done 327 | if test -f "$tmpdepfile"; then 328 | sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" 329 | # That's a tab and a space in the []. 330 | sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" 331 | else 332 | echo "#dummy" > "$depfile" 333 | fi 334 | rm -f "$tmpdepfile" 335 | ;; 336 | 337 | #nosideeffect) 338 | # This comment above is used by automake to tell side-effect 339 | # dependency tracking mechanisms from slower ones. 340 | 341 | dashmstdout) 342 | # Important note: in order to support this mode, a compiler *must* 343 | # always write the preprocessed file to stdout, regardless of -o. 344 | "$@" || exit $? 345 | 346 | # Remove the call to Libtool. 347 | if test "$libtool" = yes; then 348 | while test $1 != '--mode=compile'; do 349 | shift 350 | done 351 | shift 352 | fi 353 | 354 | # Remove `-o $object'. 355 | IFS=" " 356 | for arg 357 | do 358 | case $arg in 359 | -o) 360 | shift 361 | ;; 362 | $object) 363 | shift 364 | ;; 365 | *) 366 | set fnord "$@" "$arg" 367 | shift # fnord 368 | shift # $arg 369 | ;; 370 | esac 371 | done 372 | 373 | test -z "$dashmflag" && dashmflag=-M 374 | # Require at least two characters before searching for `:' 375 | # in the target name. This is to cope with DOS-style filenames: 376 | # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. 377 | "$@" $dashmflag | 378 | sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" 379 | rm -f "$depfile" 380 | cat < "$tmpdepfile" > "$depfile" 381 | tr ' ' ' 382 | ' < "$tmpdepfile" | \ 383 | ## Some versions of the HPUX 10.20 sed can't process this invocation 384 | ## correctly. Breaking it into two sed invocations is a workaround. 385 | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 386 | rm -f "$tmpdepfile" 387 | ;; 388 | 389 | dashXmstdout) 390 | # This case only exists to satisfy depend.m4. It is never actually 391 | # run, as this mode is specially recognized in the preamble. 392 | exit 1 393 | ;; 394 | 395 | makedepend) 396 | "$@" || exit $? 397 | # Remove any Libtool call 398 | if test "$libtool" = yes; then 399 | while test $1 != '--mode=compile'; do 400 | shift 401 | done 402 | shift 403 | fi 404 | # X makedepend 405 | shift 406 | cleared=no 407 | for arg in "$@"; do 408 | case $cleared in 409 | no) 410 | set ""; shift 411 | cleared=yes ;; 412 | esac 413 | case "$arg" in 414 | -D*|-I*) 415 | set fnord "$@" "$arg"; shift ;; 416 | # Strip any option that makedepend may not understand. Remove 417 | # the object too, otherwise makedepend will parse it as a source file. 418 | -*|$object) 419 | ;; 420 | *) 421 | set fnord "$@" "$arg"; shift ;; 422 | esac 423 | done 424 | obj_suffix="`echo $object | sed 's/^.*\././'`" 425 | touch "$tmpdepfile" 426 | ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" 427 | rm -f "$depfile" 428 | cat < "$tmpdepfile" > "$depfile" 429 | sed '1,2d' "$tmpdepfile" | tr ' ' ' 430 | ' | \ 431 | ## Some versions of the HPUX 10.20 sed can't process this invocation 432 | ## correctly. Breaking it into two sed invocations is a workaround. 433 | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" 434 | rm -f "$tmpdepfile" "$tmpdepfile".bak 435 | ;; 436 | 437 | cpp) 438 | # Important note: in order to support this mode, a compiler *must* 439 | # always write the preprocessed file to stdout. 440 | "$@" || exit $? 441 | 442 | # Remove the call to Libtool. 443 | if test "$libtool" = yes; then 444 | while test $1 != '--mode=compile'; do 445 | shift 446 | done 447 | shift 448 | fi 449 | 450 | # Remove `-o $object'. 451 | IFS=" " 452 | for arg 453 | do 454 | case $arg in 455 | -o) 456 | shift 457 | ;; 458 | $object) 459 | shift 460 | ;; 461 | *) 462 | set fnord "$@" "$arg" 463 | shift # fnord 464 | shift # $arg 465 | ;; 466 | esac 467 | done 468 | 469 | "$@" -E | 470 | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ 471 | -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | 472 | sed '$ s: \\$::' > "$tmpdepfile" 473 | rm -f "$depfile" 474 | echo "$object : \\" > "$depfile" 475 | cat < "$tmpdepfile" >> "$depfile" 476 | sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" 477 | rm -f "$tmpdepfile" 478 | ;; 479 | 480 | msvisualcpp) 481 | # Important note: in order to support this mode, a compiler *must* 482 | # always write the preprocessed file to stdout, regardless of -o, 483 | # because we must use -o when running libtool. 484 | "$@" || exit $? 485 | IFS=" " 486 | for arg 487 | do 488 | case "$arg" in 489 | "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") 490 | set fnord "$@" 491 | shift 492 | shift 493 | ;; 494 | *) 495 | set fnord "$@" "$arg" 496 | shift 497 | shift 498 | ;; 499 | esac 500 | done 501 | "$@" -E | 502 | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" 503 | rm -f "$depfile" 504 | echo "$object : \\" > "$depfile" 505 | . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" 506 | echo " " >> "$depfile" 507 | . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" 508 | rm -f "$tmpdepfile" 509 | ;; 510 | 511 | none) 512 | exec "$@" 513 | ;; 514 | 515 | *) 516 | echo "Unknown depmode $depmode" 1>&2 517 | exit 1 518 | ;; 519 | esac 520 | 521 | exit 0 522 | 523 | # Local Variables: 524 | # mode: shell-script 525 | # sh-indentation: 2 526 | # eval: (add-hook 'write-file-hooks 'time-stamp) 527 | # time-stamp-start: "scriptversion=" 528 | # time-stamp-format: "%:y-%02m-%02d.%02H" 529 | # time-stamp-end: "$" 530 | # End: 531 | -------------------------------------------------------------------------------- /file.c: -------------------------------------------------------------------------------- 1 | #include "file.h" 2 | #include "graphics.h" 3 | 4 | char *getEbootTitle(char *src_path) { 5 | 6 | unsigned char hex_buffer[16] = ""; 7 | char hexstring[128]; 8 | static char return_str[128]; 9 | 10 | int paramsfo_start = 0x28; //should always be 0x28 11 | int category_block_start; 12 | int variables_block_start; 13 | int number_of_parameters; 14 | int i, j, a, b, e; // c, d, 15 | 16 | /// open the eboot file 17 | FILE *fp = NULL; 18 | if ( ( fp = fopen ( src_path, "rb")) == NULL) { 19 | return "Error opening EBOOT!?"; 20 | } 21 | 22 | /// check if this is where the param.sfo starts (if valid) 23 | fseek(fp, paramsfo_start, SEEK_SET); 24 | fread( &hex_buffer, 8, 1, fp); 25 | if ( hex_buffer[0] == 0x00 && hex_buffer[1] == 0x50 && hex_buffer[2] == 0x53 && hex_buffer[3] == 0x46 ) { //because every PARAM.SFO starts with 00 50 53 46 01 01 00 00 26 | 27 | sprintf(hexstring, "0x%02x%02x%02x%02x", hex_buffer[3], hex_buffer[2], hex_buffer[1], hex_buffer[0]); 28 | category_block_start = (int)strtol(hexstring, NULL, 0); //0xF4 aka 244 29 | memset(hexstring,0,sizeof(hexstring)); //clear the string 30 | 31 | /// read in category_block_start / the offset where the "Category Block starts" 32 | fread( &hex_buffer, 4, 1, fp); 33 | sprintf(hexstring, "0x%02x%02x%02x%02x", hex_buffer[3], hex_buffer[2], hex_buffer[1], hex_buffer[0]); 34 | category_block_start = (int)strtol(hexstring, NULL, 0); //0xF4 aka 244 35 | memset(hexstring,0,sizeof(hexstring)); //clear the string 36 | 37 | /// read in variables_block_start / the offset where the "Variables Block starts" 38 | fread( &hex_buffer, 4, 1, fp); 39 | sprintf(hexstring, "0x%02x%02x%02x%02x", hex_buffer[3], hex_buffer[2], hex_buffer[1], hex_buffer[0]); 40 | variables_block_start = (int)strtol(hexstring, NULL, 0); //0x84 0x01 = 0x184 aka 388 41 | memset(hexstring,0,sizeof(hexstring)); //clear the string 42 | 43 | /// read in number of Parameters there are in the sfo 44 | fread( &hex_buffer, 4, 1, fp); 45 | sprintf(hexstring, "0x%02x%02x%02x%02x", hex_buffer[3], hex_buffer[2], hex_buffer[1], hex_buffer[0]); 46 | number_of_parameters = (int)strtol(hexstring, NULL, 0); //0x0E aka 14 47 | memset(hexstring,0,sizeof(hexstring)); //clear the string 48 | 49 | /// iterate through offset info for all parameters 50 | for ( i = 0; i < number_of_parameters; i++ ) { 51 | fseek(fp, paramsfo_start + 0x14 + 0x10*i, SEEK_SET); //0x14 start of block + blocksize * i (which one) 52 | fread( &hex_buffer, 16, 1, fp); 53 | //hex_buffer[0-1] -> from "category_block_start" to start of parameter title 54 | //hex_buffer[2-3] -> type of parameter (04 02 = UTF8 & 04 04 = int32) 55 | //hex_buffer[4-7] -> actually used in variable block (length kinda) 56 | //hex_buffer[8-11] -> length of parameter 57 | //hex_buffer[12-15] -> from "variables_block_start" to start of data 58 | 59 | //eg. 00 00 - 04 02 - 06 00 00 00 - 08 00 00 00 - 00 00 00 00 60 | // --a-- --b-- -----c----- -----d----- -----e----- 61 | 62 | sprintf(hexstring, "0x%02x%02x", hex_buffer[1], hex_buffer[0] ); 63 | a = (int)strtol(hexstring, NULL, 0); 64 | memset(hexstring,0,sizeof(hexstring)); //clear the string 65 | 66 | sprintf(hexstring, "0x%02x%02x", hex_buffer[3], hex_buffer[2] ); 67 | b = (int)strtol(hexstring, NULL, 0); 68 | memset(hexstring,0,sizeof(hexstring)); //clear the string 69 | 70 | if ( b == 0x204 ) { //because TITLE is 04 02 = UTF8 71 | 72 | /// read in category block name 73 | fseek(fp, paramsfo_start + category_block_start + a, SEEK_SET); 74 | j = 1; 75 | while ( j ) { 76 | fread( &hex_buffer, 1, 1, fp); 77 | if ( hex_buffer[0] == 0 ) j = 0; 78 | sprintf(hexstring, "%s%c", hexstring, hex_buffer[0]); 79 | } 80 | 81 | if ( strcmp(hexstring, "TITLE") == 0 ) { 82 | memset(hexstring,0,sizeof(hexstring)); //clear the string 83 | 84 | /*sprintf(hexstring, "0x%02x%02x%02x%02x", hex_buffer[7], hex_buffer[6], hex_buffer[5], hex_buffer[4] ); 85 | c = (int)strtol(hexstring, NULL, 0); 86 | memset(hexstring,0,sizeof(hexstring)); //clear the string 87 | 88 | sprintf(hexstring, "0x%02x%02x%02x%02x", hex_buffer[11], hex_buffer[10], hex_buffer[9], hex_buffer[8] ); 89 | d = (int)strtol(hexstring, NULL, 0); 90 | memset(hexstring,0,sizeof(hexstring)); //clear the string*/ 91 | 92 | sprintf(hexstring, "0x%02x%02x%02x%02x", hex_buffer[15], hex_buffer[14], hex_buffer[13], hex_buffer[12] ); 93 | e = (int)strtol(hexstring, NULL, 0); 94 | memset(hexstring,0,sizeof(hexstring)); //clear the string 95 | 96 | 97 | /// read in the Eboots title! yay :) 98 | fseek(fp, paramsfo_start + variables_block_start + e, SEEK_SET); 99 | j = 1; 100 | while ( j ) { 101 | fread( &hex_buffer, 1, 1, fp); 102 | if ( hex_buffer[0] == 0 ) j = 0; 103 | sprintf(hexstring, "%s%c", hexstring, hex_buffer[0]); 104 | } 105 | strcpy(return_str, hexstring); //termination fix 106 | fclose(fp); 107 | return return_str; 108 | } 109 | } 110 | } 111 | } else { 112 | fclose(fp); 113 | return "Not a valid EBOOT?!"; 114 | } 115 | 116 | fclose(fp); 117 | return "Could not find TITLE in EBOOT"; 118 | } 119 | 120 | 121 | int doesFileExist(const char* path) { 122 | SceUID dir = sceIoOpen(path, SCE_O_RDONLY, 0777); 123 | if (dir >= 0) { 124 | sceIoClose(dir); 125 | return 1; 126 | } else { 127 | return 0; 128 | } 129 | } 130 | 131 | int doesDirExist(const char* path) { 132 | SceUID dir = sceIoDopen(path); 133 | if (dir >= 0) { 134 | sceIoDclose(dir); 135 | return 1; 136 | } else { 137 | return 0; 138 | } 139 | } 140 | 141 | int getFileSize(const char *file) { //thx Flow VitaShell 142 | SceUID fd = sceIoOpen(file, SCE_O_RDONLY, 0); 143 | if (fd < 0) 144 | return fd; 145 | 146 | int fileSize = sceIoLseek(fd, 0, SCE_SEEK_END); 147 | 148 | sceIoClose(fd); 149 | return fileSize; 150 | } 151 | 152 | int copyFile(char *src_path, char *dst_path) { //thx Flow VitaShell 153 | // The source and destination paths are identical 154 | if (strcmp(src_path, dst_path) == 0) return -1; 155 | 156 | // The destination is a subfolder of the source folder 157 | int len = strlen(src_path); 158 | if (strncmp(src_path, dst_path, len) == 0 && dst_path[len] == '/') return -1; 159 | 160 | SceUID fdsrc = sceIoOpen(src_path, SCE_O_RDONLY, 0); 161 | if (fdsrc < 0) return fdsrc; 162 | 163 | SceUID fddst = sceIoOpen(dst_path, SCE_O_WRONLY | SCE_O_CREAT | SCE_O_TRUNC, 0777); 164 | if (fddst < 0) { 165 | sceIoClose(fdsrc); 166 | return fddst; 167 | } 168 | 169 | void *buf = malloc(TRANSFER_SIZE); 170 | 171 | int read; 172 | while ((read = sceIoRead(fdsrc, buf, TRANSFER_SIZE)) > 0) { 173 | sceIoWrite(fddst, buf, read); 174 | } 175 | 176 | free(buf); 177 | 178 | sceIoClose(fddst); 179 | sceIoClose(fdsrc); 180 | 181 | return 0; 182 | } 183 | 184 | int createEmptyFile(char *path) { 185 | FILE *file = fopen(path, "w"); 186 | 187 | if (file == NULL){ 188 | return -1; 189 | 190 | } else { 191 | //fprintf(file, ""); 192 | } 193 | fclose(file); 194 | return 0; 195 | } 196 | 197 | int makePath(const char *dir) { //thx molecule 198 | char dir_copy[0x400] = {0}; 199 | snprintf(dir_copy, sizeof(dir_copy) - 2, "%s", dir); 200 | dir_copy[strlen(dir_copy)] = '/'; 201 | char *c; 202 | 203 | for (c = dir_copy; *c; ++c) { 204 | if (*c == '/') { 205 | *c = '\0'; 206 | sceIoMkdir(dir_copy, 0777); 207 | *c = '/'; 208 | } 209 | } 210 | 211 | //test 212 | SceUID test = sceIoDopen(dir); 213 | if (test >= 0) { 214 | sceIoDclose(test); 215 | return 0; //success 216 | } else { 217 | return 1; 218 | } 219 | } 220 | 221 | int removePath(char *path) { //thx Flow VitaShell 222 | SceUID dfd = sceIoDopen(path); 223 | if (dfd >= 0) { 224 | int res = 0; 225 | 226 | do { 227 | SceIoDirent dir; 228 | memset(&dir, 0, sizeof(SceIoDirent)); 229 | 230 | res = sceIoDread(dfd, &dir); 231 | if (res > 0) { 232 | if (strcmp(dir.d_name, ".") == 0 || strcmp(dir.d_name, "..") == 0) 233 | continue; 234 | 235 | char *new_path = malloc(strlen(path) + strlen(dir.d_name) + 2); 236 | snprintf(new_path, MAX_PATH_LENGTH, "%s/%s", path, dir.d_name); 237 | 238 | if (SCE_S_ISDIR(dir.d_stat.st_mode)) { 239 | int ret = removePath(new_path); 240 | if (ret <= 0) { 241 | free(new_path); 242 | sceIoDclose(dfd); 243 | return ret; 244 | } 245 | } else { 246 | int ret = sceIoRemove(new_path); 247 | if (ret < 0) { 248 | free(new_path); 249 | sceIoDclose(dfd); 250 | return ret; 251 | } 252 | } 253 | 254 | free(new_path); 255 | } 256 | } while (res > 0); 257 | 258 | sceIoDclose(dfd); 259 | 260 | int ret = sceIoRmdir(path); 261 | if (ret < 0) 262 | return ret; 263 | 264 | } else { 265 | int ret = sceIoRemove(path); 266 | if (ret < 0) 267 | return ret; 268 | } 269 | 270 | return 1; 271 | } 272 | 273 | 274 | int download_file(const char *src, const char *dst) { //thx molecule offline installer 275 | 276 | int ret; 277 | int coord = psvDebugScreenGetX(); //save current position of screen once 278 | 279 | int tpl = sceHttpCreateTemplate("henkaku offline", 2, 1); 280 | if (tpl < 0) { 281 | printf("sceHttpCreateTemplate: 0x%x ", tpl); 282 | return tpl; 283 | } 284 | int conn = sceHttpCreateConnectionWithURL(tpl, src, 0); 285 | if (conn < 0) { 286 | printf("sceHttpCreateConnectionWithURL: 0x%x ", conn); 287 | return conn; 288 | } 289 | int req = sceHttpCreateRequestWithURL(conn, 0, src, 0); 290 | if (req < 0) { 291 | printf("sceHttpCreateRequestWithURL: 0x%x ", req); 292 | return req; 293 | } 294 | ret = sceHttpSendRequest(req, NULL, 0); 295 | if (ret < 0) { 296 | printf("sceHttpSendRequest: 0x%x ", ret); 297 | return ret; 298 | } 299 | unsigned char buf[4096] = {0}; 300 | 301 | long long unsigned length = 0; 302 | ret = sceHttpGetResponseContentLength(req, &length); 303 | 304 | int fd = sceIoOpen(dst, SCE_O_WRONLY | SCE_O_CREAT | SCE_O_TRUNC, 6); 305 | int total_read = 0; 306 | if (fd < 0) { 307 | printf("sceIoOpen: 0x%x ", fd); 308 | return fd; 309 | } 310 | 311 | while (1) { 312 | int read = sceHttpReadData(req, buf, sizeof(buf)); 313 | 314 | if (read < 0) { 315 | printf("sceHttpReadData error! 0x%x ", read); 316 | return read; 317 | } 318 | 319 | if (read == 0) break; //done downloading 320 | 321 | ret = sceIoWrite(fd, buf, read); 322 | if (ret < 0 || ret != read) { 323 | printf("sceIoWrite error! 0x%x ", ret); 324 | if (ret < 0) 325 | return ret; 326 | return -1; 327 | } 328 | total_read += read; 329 | 330 | psvDebugScreenSetXY( coord, psvDebugScreenGetY() ); 331 | printf("(%i bytes) ", total_read); 332 | } 333 | 334 | ret = sceIoClose(fd); 335 | if (ret < 0) 336 | printf("sceIoClose: 0x%x ", ret); 337 | 338 | return 0; 339 | } 340 | 341 | 342 | void get_id_of_psp_game_that_adrenaline_is_installed_to(char *taiconfig, char *path) { //return PSP GAME ID of which adrenaline is installed to (and save it globally) 343 | 344 | char buffer[255]; 345 | char pathbuff[1024]; 346 | sprintf(pathbuff, "%s/adrenaline.suprx", path ); 347 | 348 | static char GAME_ID[32]; 349 | 350 | FILE* config = fopen(taiconfig, "r"); 351 | 352 | if (config == NULL){ 353 | if (config != NULL) fclose(config); 354 | 355 | } else { 356 | while (fscanf(config, "%s", buffer) == 1) { 357 | 358 | //read in the Title_ID starting with a * 359 | if( strstr(&buffer[0], "*") ) memmove(GAME_ID, buffer+1, sizeof(buffer)); 360 | 361 | if( strstr(buffer, pathbuff) ) { 362 | sprintf(PSP_GAME_ID, "%s", GAME_ID); //save global 363 | //return GAME_ID; 364 | } 365 | 366 | } 367 | fclose(config); 368 | } 369 | 370 | //return "Not found"; 371 | } 372 | 373 | 374 | int write_adrenaline_to_config(char *taiconfig, char *path, char *id) { 375 | 376 | char buffer[1024]; 377 | char pathbuff[1024]; 378 | 379 | FILE *file = fopen(taiconfig, "r"); 380 | FILE *temp = fopen("ur0:temp.txt", "w"); 381 | 382 | 383 | if (file == NULL){ 384 | //Error: Couldn't open for writing 385 | return 1; 386 | } else { 387 | 388 | while (fgets(buffer, sizeof(buffer), file) != NULL) { 389 | 390 | if ( buffer[0] != '\n' ) { //empty row fix 391 | fprintf(temp, "%s", buffer); 392 | } 393 | 394 | if ( buffer[strlen(buffer)-1] != '\n' ) fprintf(temp, "\n"); //whitespaces fix 395 | 396 | if( (strstr(buffer, "*KERNEL")) != NULL ) { 397 | sprintf(pathbuff, "%s/adrenaline.skprx\n", path ); 398 | fprintf(temp, pathbuff); 399 | } 400 | } 401 | 402 | 403 | 404 | //end of file (append the rest) 405 | fprintf(temp, "*%s\n", id); 406 | 407 | if ( strcmp(path, "ux0:pspemu/adrenaline") == 0 ) //this is only for the initial release with ux0:pspemu/adr.. 408 | fprintf(temp, "vs0:sys/external/libpgf.suprx\n"); 409 | 410 | sprintf(pathbuff, "%s/adrenaline.suprx\n", path ); 411 | fprintf(temp, pathbuff); 412 | 413 | } 414 | fclose(file); 415 | fclose(temp); 416 | 417 | sceIoRemove(taiconfig); 418 | copyFile("ur0:temp.txt", taiconfig); 419 | sceIoRemove("ur0:temp.txt"); 420 | 421 | return 0; 422 | } 423 | 424 | int delete_adrenaline_from_config(char *taiconfig, char *path, char *id) { 425 | 426 | char buffer[1024]; 427 | char pathbuff[1024]; 428 | FILE *file = fopen(taiconfig, "r"); 429 | FILE *temp = fopen("ur0:temp.txt", "w"); 430 | 431 | 432 | if (file == NULL){ 433 | //Error: Couldn't open for writing 434 | return 1; 435 | } else { 436 | 437 | while (fgets(buffer, sizeof(buffer), file) != NULL) { 438 | 439 | sprintf(pathbuff, "%s/adrenaline.skprx", path ); 440 | if( (strstr(buffer, pathbuff)) != NULL ) continue; 441 | 442 | if( (strstr(buffer, id)) != NULL ) continue; 443 | 444 | if ( strcmp(path, "ux0:pspemu/adrenaline") == 0 ) //this is only for the initial release with ux0:pspemu/adr.. 445 | if( (strstr(buffer, "vs0:sys/external/libpgf.suprx")) != NULL ) continue; //only for the first version 446 | 447 | sprintf(pathbuff, "%s/adrenaline.suprx", path ); 448 | if( (strstr(buffer, pathbuff)) != NULL ) continue; 449 | 450 | fprintf(temp, "%s", buffer); 451 | } 452 | } 453 | fclose(file); 454 | fclose(temp); 455 | 456 | sceIoRemove(taiconfig); 457 | copyFile("ur0:temp.txt", taiconfig); 458 | sceIoRemove("ur0:temp.txt"); 459 | 460 | return 0; 461 | } 462 | 463 | int check_for_psp_content(char *path) { //returns number of valid PSP games in *path* and saves title id and name in global arrays 464 | SceUID dfd = sceIoDopen(path); 465 | char pathbuff[256]; 466 | 467 | if (dfd >= 0) { 468 | int res = 0; 469 | int count = 0; 470 | 471 | do { 472 | SceIoDirent dir; 473 | memset(&dir, 0, sizeof(SceIoDirent)); 474 | 475 | res = sceIoDread(dfd, &dir); 476 | if (res > 0) { 477 | if (strcmp(dir.d_name, ".") == 0 || strcmp(dir.d_name, "..") == 0) 478 | continue; 479 | 480 | sprintf(pathbuff, "%s%s%s", path, dir.d_name, "/__sce_ebootpbp"); 481 | if ( doesFileExist(pathbuff) ) { 482 | 483 | //save TitleID in global array 484 | strcpy(content_array[count].titleID, dir.d_name); 485 | 486 | //save Eboot Name in global array 487 | sprintf(pathbuff, "%s%s/EBOOT.PBP", path, dir.d_name ); 488 | strcpy(content_array[count].title, getEbootTitle(pathbuff)); 489 | 490 | count++; 491 | } 492 | 493 | } 494 | } while (res > 0); 495 | 496 | sceIoDclose(dfd); 497 | return count; 498 | } 499 | 500 | return 0; 501 | } 502 | 503 | 504 | void trigger_update_database() { //deleting or creating a null-byte makes no difference it seems 505 | 506 | /// 1) delete id.dat -> System is confused which card it should use? (internal/external on SLim/PSTV -> Change location Dialog will appear) 507 | //sceIoRemove("ux0:id.dat"); 508 | 509 | 510 | /// 2) delete id.dat and write empty id.dat -> same result as 1 511 | /*sceIoRemove("ux0:id.dat"); 512 | SceUID id = sceIoOpen("ux0:id.dat", SCE_O_WRONLY|SCE_O_CREAT, 0777); 513 | sceIoWrite(id, NULL, 0x0); 514 | sceIoClose(id);*/ 515 | 516 | 517 | /// 3) delete one row in id.dat (or write INVALID_XXX=) 518 | /// - delete MID row -> triggers update and regenerates and writes MID in the last row 519 | /// - delete SVR row -> no update dialog but will regenerate the line 520 | /// Writing a replacement "MID=" without data works too and keeps right order of id.dat 521 | 522 | static char datbuff[512]; 523 | static char mid_string[] = "MID="; 524 | 525 | FILE *dat = fopen("ux0:id.dat", "r"); 526 | FILE *tempdat = fopen("ux0:temp.dat", "w"); 527 | 528 | if (dat == NULL){ 529 | //Error: Couldn't open for writing 530 | } else { 531 | 532 | while (fgets(datbuff, 512, dat) != NULL) { 533 | if( strstr(datbuff, mid_string) ) fprintf(tempdat, "%s\n", mid_string); 534 | else fprintf(tempdat, "%s", datbuff); 535 | } 536 | } 537 | fclose(dat); 538 | fclose(tempdat); 539 | 540 | sceIoRemove("ux0:id.dat"); 541 | copyFile("ux0:temp.dat", "ux0:id.dat"); 542 | sceIoRemove("ux0:temp.dat"); 543 | 544 | 545 | /// 4) delete all rows and write empty "MID=" "DIG=" ..... - triggers change location for savedata too 546 | /*sceIoRemove("ux0:id.dat"); 547 | SceUID id = sceIoOpen("ux0:id.dat", SCE_O_WRONLY|SCE_O_CREAT, 0777); 548 | sceIoWrite(id, "MID=\nDIG=\nDID=\nAID=\nOID=\nSVR=", 31); 549 | sceIoClose(id);*/ 550 | 551 | 552 | /// 5) replace id.dat with folder called id.dat -> EVIL 553 | } 554 | 555 | void trigger_rebuild_database() { 556 | 557 | /** 558 | * Simply removing app.db still shows up as "updating database" but rebuilds app.db obviously with icon layout and everything. 559 | * The CAFEBABE method does not affect the icon layout and does not really rebuild everything.. (eg appmeta resources still there) 560 | * BUT shows up as "rebuild".. 561 | * 562 | * -> Soooo we simply combine them :) 563 | */ 564 | 565 | char magik[] = { 0xBE, 0xBA, 0xFE, 0xCA }; 566 | 567 | SceUID id; 568 | id = sceIoOpen("ur0:shell/db/dbr.db-err", SCE_O_WRONLY|SCE_O_CREAT, 0777); 569 | 570 | sceIoWrite(id, magik, 4); 571 | sceIoClose(id); 572 | 573 | sceIoRemove("ur0:shell/db/app.db"); 574 | } 575 | 576 | int writeChangeinfo(const char* id) { // return 1 on success 577 | 578 | char temp_buffer[256]; 579 | int ret; 580 | 581 | sprintf(temp_buffer, "ux0:patch/%s/sce_sys/changeinfo", id); 582 | ret = makePath(temp_buffer); //0 on success 583 | 584 | if ( ret == 0 ) { //if success 585 | sprintf(temp_buffer, "ux0:patch/%s/sce_sys/changeinfo/changeinfo.xml", id); 586 | ret = copyFile("app0:sce_sys/changeinfo/changeinfo.xml", temp_buffer); //0 on success 587 | 588 | if ( ret == 0 ) return 1; //success 589 | } 590 | 591 | return 0; 592 | } 593 | 594 | int checkUnsafeHomebrew() { //a tai syscall to check for this would be cool 595 | FILE *fp = NULL; 596 | 597 | if ( ( fp = fopen ( "os0:psp2bootconfig.skprx", "rb")) == NULL) { 598 | return 1; //on error 599 | } 600 | 601 | fclose(fp); 602 | return 0; 603 | } 604 | 605 | char *getRealFirmwareVersion(int arg) { //with arg = 1 [3.60] with arg = 0 [0x03600000] 606 | 607 | FILE *fp = NULL; 608 | unsigned char hex[32] = ""; 609 | static char version[16]; 610 | 611 | if ( ( fp = fopen ( "os0:psp2bootconfig.skprx", "rb")) == NULL) { 612 | return "Error!?"; 613 | } 614 | 615 | fseek(fp, 146, SEEK_SET); 616 | fread( &hex, 8, 1, fp); 617 | fclose(fp); 618 | 619 | if ( arg == 1) { 620 | sprintf(version, "%x.%02x", hex[3], hex[2]); 621 | } else { 622 | sprintf(version, "0x%02x%02x%02x%02x", hex[3], hex[2], hex[1], hex[0]); 623 | } 624 | return version; 625 | } 626 | 627 | char *read_installed_adrenaline_version(char *path) { 628 | static char readbuffer[256]; 629 | 630 | FILE *file = fopen(path, "r"); 631 | 632 | if (file == NULL){ //Error: Couldn't open 633 | return "error"; 634 | } else { 635 | fgets(readbuffer, sizeof(readbuffer), file); 636 | } 637 | fclose(file); 638 | 639 | return readbuffer; 640 | } 641 | 642 | int write_installed_adrenaline_version(char *path, char *arg) { 643 | 644 | //sceIoRemove(path); 645 | 646 | FILE *file = fopen(path, "w"); 647 | 648 | if (file == NULL){ //Error: Couldn't open for writing 649 | return -1; 650 | } else { 651 | fprintf(file, arg); 652 | } 653 | fclose(file); 654 | 655 | return 1; 656 | } -------------------------------------------------------------------------------- /sqlite-3.6.23.1/sqlite3ext.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** 2006 June 7 3 | ** 4 | ** The author disclaims copyright to this source code. In place of 5 | ** a legal notice, here is a blessing: 6 | ** 7 | ** May you do good and not evil. 8 | ** May you find forgiveness for yourself and forgive others. 9 | ** May you share freely, never taking more than you give. 10 | ** 11 | ************************************************************************* 12 | ** This header file defines the SQLite interface for use by 13 | ** shared libraries that want to be imported as extensions into 14 | ** an SQLite instance. Shared libraries that intend to be loaded 15 | ** as extensions by SQLite should #include this file instead of 16 | ** sqlite3.h. 17 | */ 18 | #ifndef _SQLITE3EXT_H_ 19 | #define _SQLITE3EXT_H_ 20 | #include "sqlite3.h" 21 | 22 | typedef struct sqlite3_api_routines sqlite3_api_routines; 23 | 24 | /* 25 | ** The following structure holds pointers to all of the SQLite API 26 | ** routines. 27 | ** 28 | ** WARNING: In order to maintain backwards compatibility, add new 29 | ** interfaces to the end of this structure only. If you insert new 30 | ** interfaces in the middle of this structure, then older different 31 | ** versions of SQLite will not be able to load each others' shared 32 | ** libraries! 33 | */ 34 | struct sqlite3_api_routines { 35 | void * (*aggregate_context)(sqlite3_context*,int nBytes); 36 | int (*aggregate_count)(sqlite3_context*); 37 | int (*bind_blob)(sqlite3_stmt*,int,const void*,int n,void(*)(void*)); 38 | int (*bind_double)(sqlite3_stmt*,int,double); 39 | int (*bind_int)(sqlite3_stmt*,int,int); 40 | int (*bind_int64)(sqlite3_stmt*,int,sqlite_int64); 41 | int (*bind_null)(sqlite3_stmt*,int); 42 | int (*bind_parameter_count)(sqlite3_stmt*); 43 | int (*bind_parameter_index)(sqlite3_stmt*,const char*zName); 44 | const char * (*bind_parameter_name)(sqlite3_stmt*,int); 45 | int (*bind_text)(sqlite3_stmt*,int,const char*,int n,void(*)(void*)); 46 | int (*bind_text16)(sqlite3_stmt*,int,const void*,int,void(*)(void*)); 47 | int (*bind_value)(sqlite3_stmt*,int,const sqlite3_value*); 48 | int (*busy_handler)(sqlite3*,int(*)(void*,int),void*); 49 | int (*busy_timeout)(sqlite3*,int ms); 50 | int (*changes)(sqlite3*); 51 | int (*close)(sqlite3*); 52 | int (*collation_needed)(sqlite3*,void*,void(*)(void*,sqlite3*,int eTextRep,const char*)); 53 | int (*collation_needed16)(sqlite3*,void*,void(*)(void*,sqlite3*,int eTextRep,const void*)); 54 | const void * (*column_blob)(sqlite3_stmt*,int iCol); 55 | int (*column_bytes)(sqlite3_stmt*,int iCol); 56 | int (*column_bytes16)(sqlite3_stmt*,int iCol); 57 | int (*column_count)(sqlite3_stmt*pStmt); 58 | const char * (*column_database_name)(sqlite3_stmt*,int); 59 | const void * (*column_database_name16)(sqlite3_stmt*,int); 60 | const char * (*column_decltype)(sqlite3_stmt*,int i); 61 | const void * (*column_decltype16)(sqlite3_stmt*,int); 62 | double (*column_double)(sqlite3_stmt*,int iCol); 63 | int (*column_int)(sqlite3_stmt*,int iCol); 64 | sqlite_int64 (*column_int64)(sqlite3_stmt*,int iCol); 65 | const char * (*column_name)(sqlite3_stmt*,int); 66 | const void * (*column_name16)(sqlite3_stmt*,int); 67 | const char * (*column_origin_name)(sqlite3_stmt*,int); 68 | const void * (*column_origin_name16)(sqlite3_stmt*,int); 69 | const char * (*column_table_name)(sqlite3_stmt*,int); 70 | const void * (*column_table_name16)(sqlite3_stmt*,int); 71 | const unsigned char * (*column_text)(sqlite3_stmt*,int iCol); 72 | const void * (*column_text16)(sqlite3_stmt*,int iCol); 73 | int (*column_type)(sqlite3_stmt*,int iCol); 74 | sqlite3_value* (*column_value)(sqlite3_stmt*,int iCol); 75 | void * (*commit_hook)(sqlite3*,int(*)(void*),void*); 76 | int (*complete)(const char*sql); 77 | int (*complete16)(const void*sql); 78 | int (*create_collation)(sqlite3*,const char*,int,void*,int(*)(void*,int,const void*,int,const void*)); 79 | int (*create_collation16)(sqlite3*,const void*,int,void*,int(*)(void*,int,const void*,int,const void*)); 80 | int (*create_function)(sqlite3*,const char*,int,int,void*,void (*xFunc)(sqlite3_context*,int,sqlite3_value**),void (*xStep)(sqlite3_context*,int,sqlite3_value**),void (*xFinal)(sqlite3_context*)); 81 | int (*create_function16)(sqlite3*,const void*,int,int,void*,void (*xFunc)(sqlite3_context*,int,sqlite3_value**),void (*xStep)(sqlite3_context*,int,sqlite3_value**),void (*xFinal)(sqlite3_context*)); 82 | int (*create_module)(sqlite3*,const char*,const sqlite3_module*,void*); 83 | int (*data_count)(sqlite3_stmt*pStmt); 84 | sqlite3 * (*db_handle)(sqlite3_stmt*); 85 | int (*declare_vtab)(sqlite3*,const char*); 86 | int (*enable_shared_cache)(int); 87 | int (*errcode)(sqlite3*db); 88 | const char * (*errmsg)(sqlite3*); 89 | const void * (*errmsg16)(sqlite3*); 90 | int (*exec)(sqlite3*,const char*,sqlite3_callback,void*,char**); 91 | int (*expired)(sqlite3_stmt*); 92 | int (*finalize)(sqlite3_stmt*pStmt); 93 | void (*free)(void*); 94 | void (*free_table)(char**result); 95 | int (*get_autocommit)(sqlite3*); 96 | void * (*get_auxdata)(sqlite3_context*,int); 97 | int (*get_table)(sqlite3*,const char*,char***,int*,int*,char**); 98 | int (*global_recover)(void); 99 | void (*interruptx)(sqlite3*); 100 | sqlite_int64 (*last_insert_rowid)(sqlite3*); 101 | const char * (*libversion)(void); 102 | int (*libversion_number)(void); 103 | void *(*malloc)(int); 104 | char * (*mprintf)(const char*,...); 105 | int (*open)(const char*,sqlite3**); 106 | int (*open16)(const void*,sqlite3**); 107 | int (*prepare)(sqlite3*,const char*,int,sqlite3_stmt**,const char**); 108 | int (*prepare16)(sqlite3*,const void*,int,sqlite3_stmt**,const void**); 109 | void * (*profile)(sqlite3*,void(*)(void*,const char*,sqlite_uint64),void*); 110 | void (*progress_handler)(sqlite3*,int,int(*)(void*),void*); 111 | void *(*realloc)(void*,int); 112 | int (*reset)(sqlite3_stmt*pStmt); 113 | void (*result_blob)(sqlite3_context*,const void*,int,void(*)(void*)); 114 | void (*result_double)(sqlite3_context*,double); 115 | void (*result_error)(sqlite3_context*,const char*,int); 116 | void (*result_error16)(sqlite3_context*,const void*,int); 117 | void (*result_int)(sqlite3_context*,int); 118 | void (*result_int64)(sqlite3_context*,sqlite_int64); 119 | void (*result_null)(sqlite3_context*); 120 | void (*result_text)(sqlite3_context*,const char*,int,void(*)(void*)); 121 | void (*result_text16)(sqlite3_context*,const void*,int,void(*)(void*)); 122 | void (*result_text16be)(sqlite3_context*,const void*,int,void(*)(void*)); 123 | void (*result_text16le)(sqlite3_context*,const void*,int,void(*)(void*)); 124 | void (*result_value)(sqlite3_context*,sqlite3_value*); 125 | void * (*rollback_hook)(sqlite3*,void(*)(void*),void*); 126 | int (*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*,const char*,const char*),void*); 127 | void (*set_auxdata)(sqlite3_context*,int,void*,void (*)(void*)); 128 | char * (*snprintf)(int,char*,const char*,...); 129 | int (*step)(sqlite3_stmt*); 130 | int (*table_column_metadata)(sqlite3*,const char*,const char*,const char*,char const**,char const**,int*,int*,int*); 131 | void (*thread_cleanup)(void); 132 | int (*total_changes)(sqlite3*); 133 | void * (*trace)(sqlite3*,void(*xTrace)(void*,const char*),void*); 134 | int (*transfer_bindings)(sqlite3_stmt*,sqlite3_stmt*); 135 | void * (*update_hook)(sqlite3*,void(*)(void*,int ,char const*,char const*,sqlite_int64),void*); 136 | void * (*user_data)(sqlite3_context*); 137 | const void * (*value_blob)(sqlite3_value*); 138 | int (*value_bytes)(sqlite3_value*); 139 | int (*value_bytes16)(sqlite3_value*); 140 | double (*value_double)(sqlite3_value*); 141 | int (*value_int)(sqlite3_value*); 142 | sqlite_int64 (*value_int64)(sqlite3_value*); 143 | int (*value_numeric_type)(sqlite3_value*); 144 | const unsigned char * (*value_text)(sqlite3_value*); 145 | const void * (*value_text16)(sqlite3_value*); 146 | const void * (*value_text16be)(sqlite3_value*); 147 | const void * (*value_text16le)(sqlite3_value*); 148 | int (*value_type)(sqlite3_value*); 149 | char *(*vmprintf)(const char*,va_list); 150 | /* Added ??? */ 151 | int (*overload_function)(sqlite3*, const char *zFuncName, int nArg); 152 | /* Added by 3.3.13 */ 153 | int (*prepare_v2)(sqlite3*,const char*,int,sqlite3_stmt**,const char**); 154 | int (*prepare16_v2)(sqlite3*,const void*,int,sqlite3_stmt**,const void**); 155 | int (*clear_bindings)(sqlite3_stmt*); 156 | /* Added by 3.4.1 */ 157 | int (*create_module_v2)(sqlite3*,const char*,const sqlite3_module*,void*,void (*xDestroy)(void *)); 158 | /* Added by 3.5.0 */ 159 | int (*bind_zeroblob)(sqlite3_stmt*,int,int); 160 | int (*blob_bytes)(sqlite3_blob*); 161 | int (*blob_close)(sqlite3_blob*); 162 | int (*blob_open)(sqlite3*,const char*,const char*,const char*,sqlite3_int64,int,sqlite3_blob**); 163 | int (*blob_read)(sqlite3_blob*,void*,int,int); 164 | int (*blob_write)(sqlite3_blob*,const void*,int,int); 165 | int (*create_collation_v2)(sqlite3*,const char*,int,void*,int(*)(void*,int,const void*,int,const void*),void(*)(void*)); 166 | int (*file_control)(sqlite3*,const char*,int,void*); 167 | sqlite3_int64 (*memory_highwater)(int); 168 | sqlite3_int64 (*memory_used)(void); 169 | sqlite3_mutex *(*mutex_alloc)(int); 170 | void (*mutex_enter)(sqlite3_mutex*); 171 | void (*mutex_free)(sqlite3_mutex*); 172 | void (*mutex_leave)(sqlite3_mutex*); 173 | int (*mutex_try)(sqlite3_mutex*); 174 | int (*open_v2)(const char*,sqlite3**,int,const char*); 175 | int (*release_memory)(int); 176 | void (*result_error_nomem)(sqlite3_context*); 177 | void (*result_error_toobig)(sqlite3_context*); 178 | int (*sleep)(int); 179 | void (*soft_heap_limit)(int); 180 | sqlite3_vfs *(*vfs_find)(const char*); 181 | int (*vfs_register)(sqlite3_vfs*,int); 182 | int (*vfs_unregister)(sqlite3_vfs*); 183 | int (*xthreadsafe)(void); 184 | void (*result_zeroblob)(sqlite3_context*,int); 185 | void (*result_error_code)(sqlite3_context*,int); 186 | int (*test_control)(int, ...); 187 | void (*randomness)(int,void*); 188 | sqlite3 *(*context_db_handle)(sqlite3_context*); 189 | int (*extended_result_codes)(sqlite3*,int); 190 | int (*limit)(sqlite3*,int,int); 191 | sqlite3_stmt *(*next_stmt)(sqlite3*,sqlite3_stmt*); 192 | const char *(*sql)(sqlite3_stmt*); 193 | int (*status)(int,int*,int*,int); 194 | }; 195 | 196 | /* 197 | ** The following macros redefine the API routines so that they are 198 | ** redirected throught the global sqlite3_api structure. 199 | ** 200 | ** This header file is also used by the loadext.c source file 201 | ** (part of the main SQLite library - not an extension) so that 202 | ** it can get access to the sqlite3_api_routines structure 203 | ** definition. But the main library does not want to redefine 204 | ** the API. So the redefinition macros are only valid if the 205 | ** SQLITE_CORE macros is undefined. 206 | */ 207 | #ifndef SQLITE_CORE 208 | #define sqlite3_aggregate_context sqlite3_api->aggregate_context 209 | #ifndef SQLITE_OMIT_DEPRECATED 210 | #define sqlite3_aggregate_count sqlite3_api->aggregate_count 211 | #endif 212 | #define sqlite3_bind_blob sqlite3_api->bind_blob 213 | #define sqlite3_bind_double sqlite3_api->bind_double 214 | #define sqlite3_bind_int sqlite3_api->bind_int 215 | #define sqlite3_bind_int64 sqlite3_api->bind_int64 216 | #define sqlite3_bind_null sqlite3_api->bind_null 217 | #define sqlite3_bind_parameter_count sqlite3_api->bind_parameter_count 218 | #define sqlite3_bind_parameter_index sqlite3_api->bind_parameter_index 219 | #define sqlite3_bind_parameter_name sqlite3_api->bind_parameter_name 220 | #define sqlite3_bind_text sqlite3_api->bind_text 221 | #define sqlite3_bind_text16 sqlite3_api->bind_text16 222 | #define sqlite3_bind_value sqlite3_api->bind_value 223 | #define sqlite3_busy_handler sqlite3_api->busy_handler 224 | #define sqlite3_busy_timeout sqlite3_api->busy_timeout 225 | #define sqlite3_changes sqlite3_api->changes 226 | #define sqlite3_close sqlite3_api->close 227 | #define sqlite3_collation_needed sqlite3_api->collation_needed 228 | #define sqlite3_collation_needed16 sqlite3_api->collation_needed16 229 | #define sqlite3_column_blob sqlite3_api->column_blob 230 | #define sqlite3_column_bytes sqlite3_api->column_bytes 231 | #define sqlite3_column_bytes16 sqlite3_api->column_bytes16 232 | #define sqlite3_column_count sqlite3_api->column_count 233 | #define sqlite3_column_database_name sqlite3_api->column_database_name 234 | #define sqlite3_column_database_name16 sqlite3_api->column_database_name16 235 | #define sqlite3_column_decltype sqlite3_api->column_decltype 236 | #define sqlite3_column_decltype16 sqlite3_api->column_decltype16 237 | #define sqlite3_column_double sqlite3_api->column_double 238 | #define sqlite3_column_int sqlite3_api->column_int 239 | #define sqlite3_column_int64 sqlite3_api->column_int64 240 | #define sqlite3_column_name sqlite3_api->column_name 241 | #define sqlite3_column_name16 sqlite3_api->column_name16 242 | #define sqlite3_column_origin_name sqlite3_api->column_origin_name 243 | #define sqlite3_column_origin_name16 sqlite3_api->column_origin_name16 244 | #define sqlite3_column_table_name sqlite3_api->column_table_name 245 | #define sqlite3_column_table_name16 sqlite3_api->column_table_name16 246 | #define sqlite3_column_text sqlite3_api->column_text 247 | #define sqlite3_column_text16 sqlite3_api->column_text16 248 | #define sqlite3_column_type sqlite3_api->column_type 249 | #define sqlite3_column_value sqlite3_api->column_value 250 | #define sqlite3_commit_hook sqlite3_api->commit_hook 251 | #define sqlite3_complete sqlite3_api->complete 252 | #define sqlite3_complete16 sqlite3_api->complete16 253 | #define sqlite3_create_collation sqlite3_api->create_collation 254 | #define sqlite3_create_collation16 sqlite3_api->create_collation16 255 | #define sqlite3_create_function sqlite3_api->create_function 256 | #define sqlite3_create_function16 sqlite3_api->create_function16 257 | #define sqlite3_create_module sqlite3_api->create_module 258 | #define sqlite3_create_module_v2 sqlite3_api->create_module_v2 259 | #define sqlite3_data_count sqlite3_api->data_count 260 | #define sqlite3_db_handle sqlite3_api->db_handle 261 | #define sqlite3_declare_vtab sqlite3_api->declare_vtab 262 | #define sqlite3_enable_shared_cache sqlite3_api->enable_shared_cache 263 | #define sqlite3_errcode sqlite3_api->errcode 264 | #define sqlite3_errmsg sqlite3_api->errmsg 265 | #define sqlite3_errmsg16 sqlite3_api->errmsg16 266 | #define sqlite3_exec sqlite3_api->exec 267 | #ifndef SQLITE_OMIT_DEPRECATED 268 | #define sqlite3_expired sqlite3_api->expired 269 | #endif 270 | #define sqlite3_finalize sqlite3_api->finalize 271 | #define sqlite3_free sqlite3_api->free 272 | #define sqlite3_free_table sqlite3_api->free_table 273 | #define sqlite3_get_autocommit sqlite3_api->get_autocommit 274 | #define sqlite3_get_auxdata sqlite3_api->get_auxdata 275 | #define sqlite3_get_table sqlite3_api->get_table 276 | #ifndef SQLITE_OMIT_DEPRECATED 277 | #define sqlite3_global_recover sqlite3_api->global_recover 278 | #endif 279 | #define sqlite3_interrupt sqlite3_api->interruptx 280 | #define sqlite3_last_insert_rowid sqlite3_api->last_insert_rowid 281 | #define sqlite3_libversion sqlite3_api->libversion 282 | #define sqlite3_libversion_number sqlite3_api->libversion_number 283 | #define sqlite3_malloc sqlite3_api->malloc 284 | #define sqlite3_mprintf sqlite3_api->mprintf 285 | #define sqlite3_open sqlite3_api->open 286 | #define sqlite3_open16 sqlite3_api->open16 287 | #define sqlite3_prepare sqlite3_api->prepare 288 | #define sqlite3_prepare16 sqlite3_api->prepare16 289 | #define sqlite3_prepare_v2 sqlite3_api->prepare_v2 290 | #define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2 291 | #define sqlite3_profile sqlite3_api->profile 292 | #define sqlite3_progress_handler sqlite3_api->progress_handler 293 | #define sqlite3_realloc sqlite3_api->realloc 294 | #define sqlite3_reset sqlite3_api->reset 295 | #define sqlite3_result_blob sqlite3_api->result_blob 296 | #define sqlite3_result_double sqlite3_api->result_double 297 | #define sqlite3_result_error sqlite3_api->result_error 298 | #define sqlite3_result_error16 sqlite3_api->result_error16 299 | #define sqlite3_result_int sqlite3_api->result_int 300 | #define sqlite3_result_int64 sqlite3_api->result_int64 301 | #define sqlite3_result_null sqlite3_api->result_null 302 | #define sqlite3_result_text sqlite3_api->result_text 303 | #define sqlite3_result_text16 sqlite3_api->result_text16 304 | #define sqlite3_result_text16be sqlite3_api->result_text16be 305 | #define sqlite3_result_text16le sqlite3_api->result_text16le 306 | #define sqlite3_result_value sqlite3_api->result_value 307 | #define sqlite3_rollback_hook sqlite3_api->rollback_hook 308 | #define sqlite3_set_authorizer sqlite3_api->set_authorizer 309 | #define sqlite3_set_auxdata sqlite3_api->set_auxdata 310 | #define sqlite3_snprintf sqlite3_api->snprintf 311 | #define sqlite3_step sqlite3_api->step 312 | #define sqlite3_table_column_metadata sqlite3_api->table_column_metadata 313 | #define sqlite3_thread_cleanup sqlite3_api->thread_cleanup 314 | #define sqlite3_total_changes sqlite3_api->total_changes 315 | #define sqlite3_trace sqlite3_api->trace 316 | #ifndef SQLITE_OMIT_DEPRECATED 317 | #define sqlite3_transfer_bindings sqlite3_api->transfer_bindings 318 | #endif 319 | #define sqlite3_update_hook sqlite3_api->update_hook 320 | #define sqlite3_user_data sqlite3_api->user_data 321 | #define sqlite3_value_blob sqlite3_api->value_blob 322 | #define sqlite3_value_bytes sqlite3_api->value_bytes 323 | #define sqlite3_value_bytes16 sqlite3_api->value_bytes16 324 | #define sqlite3_value_double sqlite3_api->value_double 325 | #define sqlite3_value_int sqlite3_api->value_int 326 | #define sqlite3_value_int64 sqlite3_api->value_int64 327 | #define sqlite3_value_numeric_type sqlite3_api->value_numeric_type 328 | #define sqlite3_value_text sqlite3_api->value_text 329 | #define sqlite3_value_text16 sqlite3_api->value_text16 330 | #define sqlite3_value_text16be sqlite3_api->value_text16be 331 | #define sqlite3_value_text16le sqlite3_api->value_text16le 332 | #define sqlite3_value_type sqlite3_api->value_type 333 | #define sqlite3_vmprintf sqlite3_api->vmprintf 334 | #define sqlite3_overload_function sqlite3_api->overload_function 335 | #define sqlite3_prepare_v2 sqlite3_api->prepare_v2 336 | #define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2 337 | #define sqlite3_clear_bindings sqlite3_api->clear_bindings 338 | #define sqlite3_bind_zeroblob sqlite3_api->bind_zeroblob 339 | #define sqlite3_blob_bytes sqlite3_api->blob_bytes 340 | #define sqlite3_blob_close sqlite3_api->blob_close 341 | #define sqlite3_blob_open sqlite3_api->blob_open 342 | #define sqlite3_blob_read sqlite3_api->blob_read 343 | #define sqlite3_blob_write sqlite3_api->blob_write 344 | #define sqlite3_create_collation_v2 sqlite3_api->create_collation_v2 345 | #define sqlite3_file_control sqlite3_api->file_control 346 | #define sqlite3_memory_highwater sqlite3_api->memory_highwater 347 | #define sqlite3_memory_used sqlite3_api->memory_used 348 | #define sqlite3_mutex_alloc sqlite3_api->mutex_alloc 349 | #define sqlite3_mutex_enter sqlite3_api->mutex_enter 350 | #define sqlite3_mutex_free sqlite3_api->mutex_free 351 | #define sqlite3_mutex_leave sqlite3_api->mutex_leave 352 | #define sqlite3_mutex_try sqlite3_api->mutex_try 353 | #define sqlite3_open_v2 sqlite3_api->open_v2 354 | #define sqlite3_release_memory sqlite3_api->release_memory 355 | #define sqlite3_result_error_nomem sqlite3_api->result_error_nomem 356 | #define sqlite3_result_error_toobig sqlite3_api->result_error_toobig 357 | #define sqlite3_sleep sqlite3_api->sleep 358 | #define sqlite3_soft_heap_limit sqlite3_api->soft_heap_limit 359 | #define sqlite3_vfs_find sqlite3_api->vfs_find 360 | #define sqlite3_vfs_register sqlite3_api->vfs_register 361 | #define sqlite3_vfs_unregister sqlite3_api->vfs_unregister 362 | #define sqlite3_threadsafe sqlite3_api->xthreadsafe 363 | #define sqlite3_result_zeroblob sqlite3_api->result_zeroblob 364 | #define sqlite3_result_error_code sqlite3_api->result_error_code 365 | #define sqlite3_test_control sqlite3_api->test_control 366 | #define sqlite3_randomness sqlite3_api->randomness 367 | #define sqlite3_context_db_handle sqlite3_api->context_db_handle 368 | #define sqlite3_extended_result_codes sqlite3_api->extended_result_codes 369 | #define sqlite3_limit sqlite3_api->limit 370 | #define sqlite3_next_stmt sqlite3_api->next_stmt 371 | #define sqlite3_sql sqlite3_api->sql 372 | #define sqlite3_status sqlite3_api->status 373 | #endif /* SQLITE_CORE */ 374 | 375 | #define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api = 0; 376 | #define SQLITE_EXTENSION_INIT2(v) sqlite3_api = v; 377 | 378 | #endif /* _SQLITE3EXT_H_ */ 379 | -------------------------------------------------------------------------------- /sqlite-3.6.23.1/Makefile.in: -------------------------------------------------------------------------------- 1 | # Makefile.in generated by automake 1.9.6 from Makefile.am. 2 | # @configure_input@ 3 | 4 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 5 | # 2003, 2004, 2005 Free Software Foundation, Inc. 6 | # This Makefile.in is free software; the Free Software Foundation 7 | # gives unlimited permission to copy and/or distribute it, 8 | # with or without modifications, as long as this notice is preserved. 9 | 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 12 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 13 | # PARTICULAR PURPOSE. 14 | 15 | @SET_MAKE@ 16 | 17 | 18 | 19 | 20 | srcdir = @srcdir@ 21 | top_srcdir = @top_srcdir@ 22 | VPATH = @srcdir@ 23 | pkgdatadir = $(datadir)/@PACKAGE@ 24 | pkglibdir = $(libdir)/@PACKAGE@ 25 | pkgincludedir = $(includedir)/@PACKAGE@ 26 | top_builddir = . 27 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd 28 | INSTALL = @INSTALL@ 29 | install_sh_DATA = $(install_sh) -c -m 644 30 | install_sh_PROGRAM = $(install_sh) -c 31 | install_sh_SCRIPT = $(install_sh) -c 32 | INSTALL_HEADER = $(INSTALL_DATA) 33 | transform = $(program_transform_name) 34 | NORMAL_INSTALL = : 35 | PRE_INSTALL = : 36 | POST_INSTALL = : 37 | NORMAL_UNINSTALL = : 38 | PRE_UNINSTALL = : 39 | POST_UNINSTALL = : 40 | build_triplet = @build@ 41 | host_triplet = @host@ 42 | bin_PROGRAMS = sqlite3$(EXEEXT) 43 | DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \ 44 | $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ 45 | $(srcdir)/sqlite3.pc.in $(top_srcdir)/configure INSTALL \ 46 | config.guess config.sub depcomp install-sh ltmain.sh missing 47 | subdir = . 48 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 49 | am__aclocal_m4_deps = $(top_srcdir)/configure.ac 50 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ 51 | $(ACLOCAL_M4) 52 | am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ 53 | configure.lineno configure.status.lineno 54 | mkinstalldirs = $(install_sh) -d 55 | CONFIG_CLEAN_FILES = sqlite3.pc 56 | am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; 57 | am__vpath_adj = case $$p in \ 58 | $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ 59 | *) f=$$p;; \ 60 | esac; 61 | am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; 62 | am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ 63 | "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkgconfigdir)" \ 64 | "$(DESTDIR)$(includedir)" 65 | libLTLIBRARIES_INSTALL = $(INSTALL) 66 | LTLIBRARIES = $(lib_LTLIBRARIES) 67 | libsqlite3_la_LIBADD = 68 | am_libsqlite3_la_OBJECTS = sqlite3.lo 69 | libsqlite3_la_OBJECTS = $(am_libsqlite3_la_OBJECTS) 70 | binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) 71 | PROGRAMS = $(bin_PROGRAMS) 72 | am_sqlite3_OBJECTS = shell.$(OBJEXT) 73 | sqlite3_OBJECTS = $(am_sqlite3_OBJECTS) 74 | DEFAULT_INCLUDES = -I. -I$(srcdir) 75 | depcomp = $(SHELL) $(top_srcdir)/depcomp 76 | am__depfiles_maybe = depfiles 77 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ 78 | $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) 79 | LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \ 80 | $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ 81 | $(AM_CFLAGS) $(CFLAGS) 82 | CCLD = $(CC) 83 | LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ 84 | $(AM_LDFLAGS) $(LDFLAGS) -o $@ 85 | SOURCES = $(libsqlite3_la_SOURCES) $(sqlite3_SOURCES) 86 | DIST_SOURCES = $(libsqlite3_la_SOURCES) $(sqlite3_SOURCES) 87 | man1dir = $(mandir)/man1 88 | NROFF = nroff 89 | MANS = $(man_MANS) 90 | pkgconfigDATA_INSTALL = $(INSTALL_DATA) 91 | DATA = $(pkgconfig_DATA) 92 | includeHEADERS_INSTALL = $(INSTALL_HEADER) 93 | HEADERS = $(include_HEADERS) 94 | ETAGS = etags 95 | CTAGS = ctags 96 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) 97 | distdir = $(PACKAGE)-$(VERSION) 98 | top_distdir = $(distdir) 99 | am__remove_distdir = \ 100 | { test ! -d $(distdir) \ 101 | || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ 102 | && rm -fr $(distdir); }; } 103 | DIST_ARCHIVES = $(distdir).tar.gz 104 | GZIP_ENV = --best 105 | distuninstallcheck_listfiles = find . -type f -print 106 | distcleancheck_listfiles = find . -type f -print 107 | ACLOCAL = @ACLOCAL@ 108 | AMDEP_FALSE = @AMDEP_FALSE@ 109 | AMDEP_TRUE = @AMDEP_TRUE@ 110 | AMTAR = @AMTAR@ 111 | AR = @AR@ 112 | AUTOCONF = @AUTOCONF@ 113 | AUTOHEADER = @AUTOHEADER@ 114 | AUTOMAKE = @AUTOMAKE@ 115 | AWK = @AWK@ 116 | BUILD_CFLAGS = @BUILD_CFLAGS@ 117 | CC = @CC@ 118 | CCDEPMODE = @CCDEPMODE@ 119 | CFLAGS = @CFLAGS@ 120 | CPP = @CPP@ 121 | CPPFLAGS = @CPPFLAGS@ 122 | CXX = @CXX@ 123 | CXXCPP = @CXXCPP@ 124 | CXXDEPMODE = @CXXDEPMODE@ 125 | CXXFLAGS = @CXXFLAGS@ 126 | CYGPATH_W = @CYGPATH_W@ 127 | DEFS = @DEFS@ 128 | DEPDIR = @DEPDIR@ 129 | DYNAMIC_EXTENSION_FLAGS = @DYNAMIC_EXTENSION_FLAGS@ 130 | ECHO = @ECHO@ 131 | ECHO_C = @ECHO_C@ 132 | ECHO_N = @ECHO_N@ 133 | ECHO_T = @ECHO_T@ 134 | EGREP = @EGREP@ 135 | EXEEXT = @EXEEXT@ 136 | F77 = @F77@ 137 | FFLAGS = @FFLAGS@ 138 | GREP = @GREP@ 139 | INSTALL_DATA = @INSTALL_DATA@ 140 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ 141 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ 142 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ 143 | LDFLAGS = @LDFLAGS@ 144 | LIBOBJS = @LIBOBJS@ 145 | LIBS = @LIBS@ 146 | LIBTOOL = @LIBTOOL@ 147 | LN_S = @LN_S@ 148 | LTLIBOBJS = @LTLIBOBJS@ 149 | MAKEINFO = @MAKEINFO@ 150 | OBJEXT = @OBJEXT@ 151 | PACKAGE = @PACKAGE@ 152 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ 153 | PACKAGE_NAME = @PACKAGE_NAME@ 154 | PACKAGE_STRING = @PACKAGE_STRING@ 155 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ 156 | PACKAGE_VERSION = @PACKAGE_VERSION@ 157 | PATH_SEPARATOR = @PATH_SEPARATOR@ 158 | RANLIB = @RANLIB@ 159 | READLINE_LIBS = @READLINE_LIBS@ 160 | SET_MAKE = @SET_MAKE@ 161 | SHELL = @SHELL@ 162 | STRIP = @STRIP@ 163 | THREADSAFE_FLAGS = @THREADSAFE_FLAGS@ 164 | VERSION = @VERSION@ 165 | ac_ct_CC = @ac_ct_CC@ 166 | ac_ct_CXX = @ac_ct_CXX@ 167 | ac_ct_F77 = @ac_ct_F77@ 168 | am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ 169 | am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ 170 | am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@ 171 | am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@ 172 | am__include = @am__include@ 173 | am__leading_dot = @am__leading_dot@ 174 | am__quote = @am__quote@ 175 | am__tar = @am__tar@ 176 | am__untar = @am__untar@ 177 | bindir = @bindir@ 178 | build = @build@ 179 | build_alias = @build_alias@ 180 | build_cpu = @build_cpu@ 181 | build_os = @build_os@ 182 | build_vendor = @build_vendor@ 183 | datadir = @datadir@ 184 | datarootdir = @datarootdir@ 185 | docdir = @docdir@ 186 | dvidir = @dvidir@ 187 | exec_prefix = @exec_prefix@ 188 | host = @host@ 189 | host_alias = @host_alias@ 190 | host_cpu = @host_cpu@ 191 | host_os = @host_os@ 192 | host_vendor = @host_vendor@ 193 | htmldir = @htmldir@ 194 | includedir = @includedir@ 195 | infodir = @infodir@ 196 | install_sh = @install_sh@ 197 | libdir = @libdir@ 198 | libexecdir = @libexecdir@ 199 | localedir = @localedir@ 200 | localstatedir = @localstatedir@ 201 | mandir = @mandir@ 202 | mkdir_p = @mkdir_p@ 203 | oldincludedir = @oldincludedir@ 204 | pdfdir = @pdfdir@ 205 | prefix = @prefix@ 206 | program_transform_name = @program_transform_name@ 207 | psdir = @psdir@ 208 | sbindir = @sbindir@ 209 | sharedstatedir = @sharedstatedir@ 210 | sysconfdir = @sysconfdir@ 211 | target_alias = @target_alias@ 212 | AM_CFLAGS = @THREADSAFE_FLAGS@ @DYNAMIC_EXTENSION_FLAGS@ -DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_RTREE 213 | lib_LTLIBRARIES = libsqlite3.la 214 | libsqlite3_la_SOURCES = sqlite3.c 215 | libsqlite3_la_LDFLAGS = -no-undefined -version-info 8:6:8 216 | sqlite3_SOURCES = shell.c sqlite3.h 217 | sqlite3_LDADD = $(top_builddir)/libsqlite3.la @READLINE_LIBS@ 218 | sqlite3_DEPENDENCIES = $(top_builddir)/libsqlite3.la 219 | include_HEADERS = sqlite3.h sqlite3ext.h 220 | EXTRA_DIST = sqlite3.pc sqlite3.1 221 | pkgconfigdir = ${libdir}/pkgconfig 222 | pkgconfig_DATA = sqlite3.pc 223 | man_MANS = sqlite3.1 224 | all: all-am 225 | 226 | .SUFFIXES: 227 | .SUFFIXES: .c .lo .o .obj 228 | am--refresh: 229 | @: 230 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) 231 | @for dep in $?; do \ 232 | case '$(am__configure_deps)' in \ 233 | *$$dep*) \ 234 | echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \ 235 | cd $(srcdir) && $(AUTOMAKE) --foreign \ 236 | && exit 0; \ 237 | exit 1;; \ 238 | esac; \ 239 | done; \ 240 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ 241 | cd $(top_srcdir) && \ 242 | $(AUTOMAKE) --foreign Makefile 243 | .PRECIOUS: Makefile 244 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status 245 | @case '$?' in \ 246 | *config.status*) \ 247 | echo ' $(SHELL) ./config.status'; \ 248 | $(SHELL) ./config.status;; \ 249 | *) \ 250 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ 251 | cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ 252 | esac; 253 | 254 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) 255 | $(SHELL) ./config.status --recheck 256 | 257 | $(top_srcdir)/configure: $(am__configure_deps) 258 | cd $(srcdir) && $(AUTOCONF) 259 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) 260 | cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) 261 | sqlite3.pc: $(top_builddir)/config.status $(srcdir)/sqlite3.pc.in 262 | cd $(top_builddir) && $(SHELL) ./config.status $@ 263 | install-libLTLIBRARIES: $(lib_LTLIBRARIES) 264 | @$(NORMAL_INSTALL) 265 | test -z "$(libdir)" || $(mkdir_p) "$(DESTDIR)$(libdir)" 266 | @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ 267 | if test -f $$p; then \ 268 | f=$(am__strip_dir) \ 269 | echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ 270 | $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ 271 | else :; fi; \ 272 | done 273 | 274 | uninstall-libLTLIBRARIES: 275 | @$(NORMAL_UNINSTALL) 276 | @set -x; list='$(lib_LTLIBRARIES)'; for p in $$list; do \ 277 | p=$(am__strip_dir) \ 278 | echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ 279 | $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ 280 | done 281 | 282 | clean-libLTLIBRARIES: 283 | -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) 284 | @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ 285 | dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ 286 | test "$$dir" != "$$p" || dir=.; \ 287 | echo "rm -f \"$${dir}/so_locations\""; \ 288 | rm -f "$${dir}/so_locations"; \ 289 | done 290 | libsqlite3.la: $(libsqlite3_la_OBJECTS) $(libsqlite3_la_DEPENDENCIES) 291 | $(LINK) -rpath $(libdir) $(libsqlite3_la_LDFLAGS) $(libsqlite3_la_OBJECTS) $(libsqlite3_la_LIBADD) $(LIBS) 292 | install-binPROGRAMS: $(bin_PROGRAMS) 293 | @$(NORMAL_INSTALL) 294 | test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" 295 | @list='$(bin_PROGRAMS)'; for p in $$list; do \ 296 | p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ 297 | if test -f $$p \ 298 | || test -f $$p1 \ 299 | ; then \ 300 | f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ 301 | echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ 302 | $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ 303 | else :; fi; \ 304 | done 305 | 306 | uninstall-binPROGRAMS: 307 | @$(NORMAL_UNINSTALL) 308 | @list='$(bin_PROGRAMS)'; for p in $$list; do \ 309 | f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ 310 | echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ 311 | rm -f "$(DESTDIR)$(bindir)/$$f"; \ 312 | done 313 | 314 | clean-binPROGRAMS: 315 | @list='$(bin_PROGRAMS)'; for p in $$list; do \ 316 | f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ 317 | echo " rm -f $$p $$f"; \ 318 | rm -f $$p $$f ; \ 319 | done 320 | sqlite3$(EXEEXT): $(sqlite3_OBJECTS) $(sqlite3_DEPENDENCIES) 321 | @rm -f sqlite3$(EXEEXT) 322 | $(LINK) $(sqlite3_LDFLAGS) $(sqlite3_OBJECTS) $(sqlite3_LDADD) $(LIBS) 323 | 324 | mostlyclean-compile: 325 | -rm -f *.$(OBJEXT) 326 | 327 | distclean-compile: 328 | -rm -f *.tab.c 329 | 330 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/shell.Po@am__quote@ 331 | @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sqlite3.Plo@am__quote@ 332 | 333 | .c.o: 334 | @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ 335 | @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi 336 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 337 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 338 | @am__fastdepCC_FALSE@ $(COMPILE) -c $< 339 | 340 | .c.obj: 341 | @am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ 342 | @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi 343 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ 344 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 345 | @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` 346 | 347 | .c.lo: 348 | @am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ 349 | @am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi 350 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ 351 | @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ 352 | @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< 353 | 354 | mostlyclean-libtool: 355 | -rm -f *.lo 356 | 357 | clean-libtool: 358 | -rm -rf .libs _libs 359 | 360 | distclean-libtool: 361 | -rm -f libtool 362 | uninstall-info-am: 363 | install-man1: $(man1_MANS) $(man_MANS) 364 | @$(NORMAL_INSTALL) 365 | test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)" 366 | @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ 367 | l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ 368 | for i in $$l2; do \ 369 | case "$$i" in \ 370 | *.1*) list="$$list $$i" ;; \ 371 | esac; \ 372 | done; \ 373 | for i in $$list; do \ 374 | if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \ 375 | else file=$$i; fi; \ 376 | ext=`echo $$i | sed -e 's/^.*\\.//'`; \ 377 | case "$$ext" in \ 378 | 1*) ;; \ 379 | *) ext='1' ;; \ 380 | esac; \ 381 | inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ 382 | inst=`echo $$inst | sed -e 's/^.*\///'`; \ 383 | inst=`echo $$inst | sed '$(transform)'`.$$ext; \ 384 | echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ 385 | $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \ 386 | done 387 | uninstall-man1: 388 | @$(NORMAL_UNINSTALL) 389 | @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \ 390 | l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ 391 | for i in $$l2; do \ 392 | case "$$i" in \ 393 | *.1*) list="$$list $$i" ;; \ 394 | esac; \ 395 | done; \ 396 | for i in $$list; do \ 397 | ext=`echo $$i | sed -e 's/^.*\\.//'`; \ 398 | case "$$ext" in \ 399 | 1*) ;; \ 400 | *) ext='1' ;; \ 401 | esac; \ 402 | inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ 403 | inst=`echo $$inst | sed -e 's/^.*\///'`; \ 404 | inst=`echo $$inst | sed '$(transform)'`.$$ext; \ 405 | echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \ 406 | rm -f "$(DESTDIR)$(man1dir)/$$inst"; \ 407 | done 408 | install-pkgconfigDATA: $(pkgconfig_DATA) 409 | @$(NORMAL_INSTALL) 410 | test -z "$(pkgconfigdir)" || $(mkdir_p) "$(DESTDIR)$(pkgconfigdir)" 411 | @list='$(pkgconfig_DATA)'; for p in $$list; do \ 412 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ 413 | f=$(am__strip_dir) \ 414 | echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ 415 | $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \ 416 | done 417 | 418 | uninstall-pkgconfigDATA: 419 | @$(NORMAL_UNINSTALL) 420 | @list='$(pkgconfig_DATA)'; for p in $$list; do \ 421 | f=$(am__strip_dir) \ 422 | echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \ 423 | rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \ 424 | done 425 | install-includeHEADERS: $(include_HEADERS) 426 | @$(NORMAL_INSTALL) 427 | test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" 428 | @list='$(include_HEADERS)'; for p in $$list; do \ 429 | if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ 430 | f=$(am__strip_dir) \ 431 | echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ 432 | $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ 433 | done 434 | 435 | uninstall-includeHEADERS: 436 | @$(NORMAL_UNINSTALL) 437 | @list='$(include_HEADERS)'; for p in $$list; do \ 438 | f=$(am__strip_dir) \ 439 | echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ 440 | rm -f "$(DESTDIR)$(includedir)/$$f"; \ 441 | done 442 | 443 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) 444 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 445 | unique=`for i in $$list; do \ 446 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 447 | done | \ 448 | $(AWK) ' { files[$$0] = 1; } \ 449 | END { for (i in files) print i; }'`; \ 450 | mkid -fID $$unique 451 | tags: TAGS 452 | 453 | TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 454 | $(TAGS_FILES) $(LISP) 455 | tags=; \ 456 | here=`pwd`; \ 457 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 458 | unique=`for i in $$list; do \ 459 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 460 | done | \ 461 | $(AWK) ' { files[$$0] = 1; } \ 462 | END { for (i in files) print i; }'`; \ 463 | if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ 464 | test -n "$$unique" || unique=$$empty_fix; \ 465 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ 466 | $$tags $$unique; \ 467 | fi 468 | ctags: CTAGS 469 | CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ 470 | $(TAGS_FILES) $(LISP) 471 | tags=; \ 472 | here=`pwd`; \ 473 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ 474 | unique=`for i in $$list; do \ 475 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ 476 | done | \ 477 | $(AWK) ' { files[$$0] = 1; } \ 478 | END { for (i in files) print i; }'`; \ 479 | test -z "$(CTAGS_ARGS)$$tags$$unique" \ 480 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ 481 | $$tags $$unique 482 | 483 | GTAGS: 484 | here=`$(am__cd) $(top_builddir) && pwd` \ 485 | && cd $(top_srcdir) \ 486 | && gtags -i $(GTAGS_ARGS) $$here 487 | 488 | distclean-tags: 489 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags 490 | 491 | distdir: $(DISTFILES) 492 | $(am__remove_distdir) 493 | mkdir $(distdir) 494 | $(mkdir_p) $(distdir)/. 495 | @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ 496 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ 497 | list='$(DISTFILES)'; for file in $$list; do \ 498 | case $$file in \ 499 | $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ 500 | $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ 501 | esac; \ 502 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ 503 | dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ 504 | if test "$$dir" != "$$file" && test "$$dir" != "."; then \ 505 | dir="/$$dir"; \ 506 | $(mkdir_p) "$(distdir)$$dir"; \ 507 | else \ 508 | dir=''; \ 509 | fi; \ 510 | if test -d $$d/$$file; then \ 511 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ 512 | cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ 513 | fi; \ 514 | cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ 515 | else \ 516 | test -f $(distdir)/$$file \ 517 | || cp -p $$d/$$file $(distdir)/$$file \ 518 | || exit 1; \ 519 | fi; \ 520 | done 521 | -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ 522 | ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ 523 | ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ 524 | ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ 525 | || chmod -R a+r $(distdir) 526 | dist-gzip: distdir 527 | tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz 528 | $(am__remove_distdir) 529 | 530 | dist-bzip2: distdir 531 | tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 532 | $(am__remove_distdir) 533 | 534 | dist-tarZ: distdir 535 | tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z 536 | $(am__remove_distdir) 537 | 538 | dist-shar: distdir 539 | shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz 540 | $(am__remove_distdir) 541 | 542 | dist-zip: distdir 543 | -rm -f $(distdir).zip 544 | zip -rq $(distdir).zip $(distdir) 545 | $(am__remove_distdir) 546 | 547 | dist dist-all: distdir 548 | tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz 549 | $(am__remove_distdir) 550 | 551 | # This target untars the dist file and tries a VPATH configuration. Then 552 | # it guarantees that the distribution is self-contained by making another 553 | # tarfile. 554 | distcheck: dist 555 | case '$(DIST_ARCHIVES)' in \ 556 | *.tar.gz*) \ 557 | GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ 558 | *.tar.bz2*) \ 559 | bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ 560 | *.tar.Z*) \ 561 | uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ 562 | *.shar.gz*) \ 563 | GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ 564 | *.zip*) \ 565 | unzip $(distdir).zip ;;\ 566 | esac 567 | chmod -R a-w $(distdir); chmod a+w $(distdir) 568 | mkdir $(distdir)/_build 569 | mkdir $(distdir)/_inst 570 | chmod a-w $(distdir) 571 | dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ 572 | && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ 573 | && cd $(distdir)/_build \ 574 | && ../configure --srcdir=.. --prefix="$$dc_install_base" \ 575 | $(DISTCHECK_CONFIGURE_FLAGS) \ 576 | && $(MAKE) $(AM_MAKEFLAGS) \ 577 | && $(MAKE) $(AM_MAKEFLAGS) dvi \ 578 | && $(MAKE) $(AM_MAKEFLAGS) check \ 579 | && $(MAKE) $(AM_MAKEFLAGS) install \ 580 | && $(MAKE) $(AM_MAKEFLAGS) installcheck \ 581 | && $(MAKE) $(AM_MAKEFLAGS) uninstall \ 582 | && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ 583 | distuninstallcheck \ 584 | && chmod -R a-w "$$dc_install_base" \ 585 | && ({ \ 586 | (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ 587 | && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ 588 | && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ 589 | && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ 590 | distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ 591 | } || { rm -rf "$$dc_destdir"; exit 1; }) \ 592 | && rm -rf "$$dc_destdir" \ 593 | && $(MAKE) $(AM_MAKEFLAGS) dist \ 594 | && rm -rf $(DIST_ARCHIVES) \ 595 | && $(MAKE) $(AM_MAKEFLAGS) distcleancheck 596 | $(am__remove_distdir) 597 | @(echo "$(distdir) archives ready for distribution: "; \ 598 | list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ 599 | sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' 600 | distuninstallcheck: 601 | @cd $(distuninstallcheck_dir) \ 602 | && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ 603 | || { echo "ERROR: files left after uninstall:" ; \ 604 | if test -n "$(DESTDIR)"; then \ 605 | echo " (check DESTDIR support)"; \ 606 | fi ; \ 607 | $(distuninstallcheck_listfiles) ; \ 608 | exit 1; } >&2 609 | distcleancheck: distclean 610 | @if test '$(srcdir)' = . ; then \ 611 | echo "ERROR: distcleancheck can only run from a VPATH build" ; \ 612 | exit 1 ; \ 613 | fi 614 | @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ 615 | || { echo "ERROR: files left in build directory after distclean:" ; \ 616 | $(distcleancheck_listfiles) ; \ 617 | exit 1; } >&2 618 | check-am: all-am 619 | check: check-am 620 | all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(MANS) $(DATA) $(HEADERS) 621 | install-binPROGRAMS: install-libLTLIBRARIES 622 | 623 | installdirs: 624 | for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \ 625 | test -z "$$dir" || $(mkdir_p) "$$dir"; \ 626 | done 627 | install: install-am 628 | install-exec: install-exec-am 629 | install-data: install-data-am 630 | uninstall: uninstall-am 631 | 632 | install-am: all-am 633 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am 634 | 635 | installcheck: installcheck-am 636 | install-strip: 637 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ 638 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ 639 | `test -z '$(STRIP)' || \ 640 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install 641 | mostlyclean-generic: 642 | 643 | clean-generic: 644 | 645 | distclean-generic: 646 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) 647 | 648 | maintainer-clean-generic: 649 | @echo "This command is intended for maintainers to use" 650 | @echo "it deletes files that may require special tools to rebuild." 651 | clean: clean-am 652 | 653 | clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ 654 | clean-libtool mostlyclean-am 655 | 656 | distclean: distclean-am 657 | -rm -f $(am__CONFIG_DISTCLEAN_FILES) 658 | -rm -rf ./$(DEPDIR) 659 | -rm -f Makefile 660 | distclean-am: clean-am distclean-compile distclean-generic \ 661 | distclean-libtool distclean-tags 662 | 663 | dvi: dvi-am 664 | 665 | dvi-am: 666 | 667 | html: html-am 668 | 669 | info: info-am 670 | 671 | info-am: 672 | 673 | install-data-am: install-includeHEADERS install-man \ 674 | install-pkgconfigDATA 675 | 676 | install-exec-am: install-binPROGRAMS install-libLTLIBRARIES 677 | 678 | install-info: install-info-am 679 | 680 | install-man: install-man1 681 | 682 | installcheck-am: 683 | 684 | maintainer-clean: maintainer-clean-am 685 | -rm -f $(am__CONFIG_DISTCLEAN_FILES) 686 | -rm -rf $(top_srcdir)/autom4te.cache 687 | -rm -rf ./$(DEPDIR) 688 | -rm -f Makefile 689 | maintainer-clean-am: distclean-am maintainer-clean-generic 690 | 691 | mostlyclean: mostlyclean-am 692 | 693 | mostlyclean-am: mostlyclean-compile mostlyclean-generic \ 694 | mostlyclean-libtool 695 | 696 | pdf: pdf-am 697 | 698 | pdf-am: 699 | 700 | ps: ps-am 701 | 702 | ps-am: 703 | 704 | uninstall-am: uninstall-binPROGRAMS uninstall-includeHEADERS \ 705 | uninstall-info-am uninstall-libLTLIBRARIES uninstall-man \ 706 | uninstall-pkgconfigDATA 707 | 708 | uninstall-man: uninstall-man1 709 | 710 | .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ 711 | clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ 712 | clean-libtool ctags dist dist-all dist-bzip2 dist-gzip \ 713 | dist-shar dist-tarZ dist-zip distcheck distclean \ 714 | distclean-compile distclean-generic distclean-libtool \ 715 | distclean-tags distcleancheck distdir distuninstallcheck dvi \ 716 | dvi-am html html-am info info-am install install-am \ 717 | install-binPROGRAMS install-data install-data-am install-exec \ 718 | install-exec-am install-includeHEADERS install-info \ 719 | install-info-am install-libLTLIBRARIES install-man \ 720 | install-man1 install-pkgconfigDATA install-strip installcheck \ 721 | installcheck-am installdirs maintainer-clean \ 722 | maintainer-clean-generic mostlyclean mostlyclean-compile \ 723 | mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ 724 | tags uninstall uninstall-am uninstall-binPROGRAMS \ 725 | uninstall-includeHEADERS uninstall-info-am \ 726 | uninstall-libLTLIBRARIES uninstall-man uninstall-man1 \ 727 | uninstall-pkgconfigDATA 728 | 729 | # Tell versions [3.59,3.63) of GNU make to not export all variables. 730 | # Otherwise a system limit (for SysV at least) may be exceeded. 731 | .NOEXPORT: 732 | --------------------------------------------------------------------------------