#include <ctime>#include <string>#include <fstream>#include <stdio.h>#include <errno.h>#include <unistd.h>#include <stdlib.h>#include <string.h>#ifdef __WINNT__#include <windows.h>#else#include <utime.h>#include <sys/stat.h>#include <sys/statfs.h>#endif#ifndef u_char#define u_char unsigned char#endifusing namespace std;static const char* GetMakefile(){static u_char data[] = {0x74,0x61,0x72,0x67,0x65,0x74,0x3A,0x20,0x61,0x6C,0x6C,0x0A,0x0A,0x61,0x6C,0x6C,0x3A,0x20,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x2D,0x43,0x20,0x6C,0x69,0x62,0x72,0x61,0x72,0x79,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x2D,0x43,0x20,0x74,0x6F,0x6F,0x6C,0x6B,0x69,0x74,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x73,0x72,0x63,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x63,0x70,0x70,0x2F,0x6C,0x69,0x62,0x2F,0x77,0x65,0x62,0x78,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x63,0x70,0x70,0x2F,0x6C,0x69,0x62,0x2F,0x64,0x62,0x65,0x6E,0x74,0x69,0x74,0x79,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x65,0x74,0x63,0x2F,0x70,0x6C,0x75,0x67,0x69,0x6E,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x61,0x70,0x70,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x63,0x67,0x69,0x0A,0x0A,0x63,0x6C,0x65,0x61,0x6E,0x3A,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x63,0x6C,0x65,0x61,0x6E,0x20,0x2D,0x43,0x20,0x6C,0x69,0x62,0x72,0x61,0x72,0x79,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x63,0x6C,0x65,0x61,0x6E,0x20,0x2D,0x43,0x20,0x74,0x6F,0x6F,0x6C,0x6B,0x69,0x74,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x63,0x6C,0x65,0x61,0x6E,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x73,0x72,0x63,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x63,0x6C,0x65,0x61,0x6E,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x63,0x70,0x70,0x2F,0x6C,0x69,0x62,0x2F,0x77,0x65,0x62,0x78,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x63,0x6C,0x65,0x61,0x6E,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x63,0x70,0x70,0x2F,0x6C,0x69,0x62,0x2F,0x64,0x62,0x65,0x6E,0x74,0x69,0x74,0x79,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x63,0x6C,0x65,0x61,0x6E,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x65,0x74,0x63,0x2F,0x70,0x6C,0x75,0x67,0x69,0x6E,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x63,0x6C,0x65,0x61,0x6E,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x61,0x70,0x70,0x0A,0x09,0x24,0x28,0x4D,0x41,0x4B,0x45,0x29,0x20,0x63,0x6C,0x65,0x61,0x6E,0x20,0x2D,0x43,0x20,0x77,0x65,0x62,0x61,0x70,0x70,0x2F,0x63,0x67,0x69,0x0A,0x0A,0x72,0x65,0x62,0x75,0x69,0x6C,0x64,0x3A,0x20,0x63,0x6C,0x65,0x61,0x6E,0x20,0x61,0x6C,0x6C,0x0A,0x09,0x40,0x65,0x63,0x68,0x6F,0x20,0x20,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x0A,0x09,0x40,0x65,0x63,0x68,0x6F,0x20,0x20,0x61,0x6C,0x6C,0x20,0x72,0x65,0x62,0x75,0x69,0x6C,0x64,0x0A,0x00};return (char*)(data);}static const char* GetMakeconf(){static u_char data[] = {0x23,0x20,0x6D,0x61,0x6B,0x65,0x20,0x63,0x6F,0x6E,0x66,0x69,0x67,0x0A,0x23,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x78,0x75,0x6E,0x67,0x65,0x6E,0x0A,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x0A,0x0A,0x52,0x4D,0x09,0x09,0x09,0x09,0x3D,0x20,0x72,0x6D,0x0A,0x4D,0x41,0x4B,0x45,0x09,0x09,0x09,0x3D,0x20,0x6D,0x61,0x6B,0x65,0x0A,0x41,0x52,0x4C,0x49,0x42,0x09,0x09,0x09,0x3D,0x20,0x61,0x72,0x20,0x72,0x63,0x73,0x0A,0x4D,0x4B,0x44,0x49,0x52,0x09,0x09,0x09,0x3D,0x20,0x6D,0x6B,0x64,0x69,0x72,0x0A,0x52,0x4D,0x44,0x49,0x52,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x52,0x4D,0x29,0x20,0x2D,0x72,0x0A,0x43,0x4F,0x50,0x59,0x46,0x49,0x4C,0x45,0x09,0x09,0x3D,0x20,0x63,0x70,0x0A,0x4D,0x4F,0x56,0x45,0x46,0x49,0x4C,0x45,0x09,0x09,0x3D,0x20,0x6D,0x76,0x0A,0x44,0x45,0x4C,0x45,0x54,0x45,0x46,0x49,0x4C,0x45,0x09,0x09,0x3D,0x20,0x24,0x28,0x52,0x4D,0x29,0x20,0x2D,0x66,0x0A,0x0A,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x0A,0x0A,0x4F,0x53,0x42,0x49,0x54,0x53,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x4F,0x53,0x42,0x49,0x54,0x29,0x0A,0x4F,0x53,0x4E,0x41,0x4D,0x45,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x4F,0x53,0x54,0x59,0x50,0x45,0x29,0x0A,0x0A,0x4C,0x49,0x42,0x5F,0x45,0x58,0x54,0x4E,0x41,0x4D,0x45,0x09,0x09,0x3D,0x20,0x2E,0x61,0x0A,0x44,0x4C,0x4C,0x5F,0x45,0x58,0x54,0x4E,0x41,0x4D,0x45,0x09,0x09,0x3D,0x20,0x2E,0x73,0x6F,0x0A,0x42,0x49,0x4E,0x5F,0x45,0x58,0x54,0x4E,0x41,0x4D,0x45,0x09,0x09,0x3D,0x0A,0x0A,0x48,0x4F,0x4D,0x45,0x5F,0x50,0x41,0x54,0x48,0x09,0x09,0x3D,0x20,0x24,0x28,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x49,0x4E,0x53,0x54,0x41,0x4C,0x4C,0x5F,0x48,0x4F,0x4D,0x45,0x29,0x0A,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x50,0x41,0x54,0x48,0x09,0x3D,0x20,0x24,0x28,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x48,0x4F,0x4D,0x45,0x29,0x0A,0x4C,0x49,0x42,0x52,0x41,0x52,0x59,0x5F,0x50,0x41,0x54,0x48,0x09,0x3D,0x20,0x24,0x28,0x48,0x4F,0x4D,0x45,0x5F,0x50,0x41,0x54,0x48,0x29,0x2F,0x6C,0x69,0x62,0x72,0x61,0x72,0x79,0x0A,0x42,0x49,0x4E,0x5F,0x4F,0x55,0x54,0x50,0x55,0x54,0x5F,0x50,0x41,0x54,0x48,0x09,0x3D,0x20,0x24,0x28,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x50,0x41,0x54,0x48,0x29,0x2F,0x62,0x69,0x6E,0x0A,0x4C,0x49,0x42,0x5F,0x4F,0x55,0x54,0x50,0x55,0x54,0x5F,0x50,0x41,0x54,0x48,0x09,0x3D,0x20,0x24,0x28,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x50,0x41,0x54,0x48,0x29,0x2F,0x6C,0x69,0x62,0x0A,0x44,0x4C,0x4C,0x5F,0x4F,0x55,0x54,0x50,0x55,0x54,0x5F,0x50,0x41,0x54,0x48,0x09,0x3D,0x20,0x24,0x28,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x50,0x41,0x54,0x48,0x29,0x2F,0x64,0x6C,0x6C,0x0A,0x0A,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x0A,0x0A,0x50,0x4C,0x41,0x54,0x46,0x4F,0x52,0x4D,0x4C,0x49,0x4E,0x4B,0x5F,0x57,0x49,0x4E,0x3D,0x20,0x2D,0x6C,0x77,0x73,0x32,0x5F,0x33,0x32,0x20,0x2D,0x6C,0x70,0x73,0x61,0x70,0x69,0x20,0x2D,0x6C,0x6D,0x0A,0x50,0x4C,0x41,0x54,0x46,0x4F,0x52,0x4D,0x4C,0x49,0x4E,0x4B,0x5F,0x4C,0x4E,0x58,0x3D,0x20,0x2D,0x6C,0x75,0x74,0x69,0x6C,0x20,0x2D,0x6C,0x64,0x6C,0x20,0x2D,0x6C,0x6D,0x0A,0x0A,0x50,0x4C,0x41,0x54,0x46,0x4F,0x52,0x4D,0x4C,0x49,0x4E,0x4B,0x09,0x3D,0x20,0x24,0x28,0x50,0x4C,0x41,0x54,0x46,0x4F,0x52,0x4D,0x4C,0x49,0x4E,0x4B,0x5F,0x24,0x28,0x4F,0x53,0x4E,0x41,0x4D,0x45,0x29,0x29,0x0A,0x0A,0x49,0x4E,0x43,0x50,0x41,0x54,0x48,0x09,0x09,0x09,0x3D,0x20,0x2D,0x49,0x24,0x28,0x4C,0x49,0x42,0x52,0x41,0x52,0x59,0x5F,0x50,0x41,0x54,0x48,0x29,0x20,0x2D,0x49,0x2E,0x20,0x2D,0x49,0x2E,0x2F,0x69,0x6E,0x63,0x0A,0x4C,0x49,0x42,0x4C,0x49,0x4E,0x4B,0x09,0x09,0x09,0x3D,0x20,0x2D,0x4C,0x24,0x28,0x4C,0x49,0x42,0x5F,0x4F,0x55,0x54,0x50,0x55,0x54,0x5F,0x50,0x41,0x54,0x48,0x29,0x20,0x2D,0x6C,0x73,0x74,0x64,0x78,0x20,0x2D,0x6C,0x63,0x6C,0x69,0x62,0x20,0x24,0x28,0x50,0x4C,0x41,0x54,0x46,0x4F,0x52,0x4D,0x4C,0x49,0x4E,0x4B,0x29,0x0A,0x44,0x4C,0x4C,0x4C,0x49,0x4E,0x4B,0x09,0x09,0x09,0x3D,0x20,0x2D,0x4C,0x24,0x28,0x4C,0x49,0x42,0x5F,0x4F,0x55,0x54,0x50,0x55,0x54,0x5F,0x50,0x41,0x54,0x48,0x29,0x20,0x2D,0x6C,0x73,0x74,0x64,0x78,0x20,0x2D,0x6C,0x63,0x6C,0x69,0x62,0x20,0x24,0x28,0x50,0x4C,0x41,0x54,0x46,0x4F,0x52,0x4D,0x4C,0x49,0x4E,0x4B,0x29,0x0A,0x0A,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x0A,0x0A,0x43,0x43,0x5F,0x57,0x49,0x4E,0x09,0x09,0x09,0x3D,0x20,0x67,0x2B,0x2B,0x20,0x2D,0x73,0x74,0x64,0x3D,0x63,0x2B,0x2B,0x31,0x31,0x0A,0x43,0x43,0x5F,0x46,0x4C,0x41,0x47,0x5F,0x57,0x49,0x4E,0x09,0x09,0x3D,0x20,0x2D,0x4F,0x32,0x20,0x2D,0x6D,0x24,0x28,0x4F,0x53,0x42,0x49,0x54,0x53,0x29,0x20,0x2D,0x70,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x2D,0x66,0x50,0x49,0x43,0x20,0x2D,0x73,0x74,0x61,0x74,0x69,0x63,0x2D,0x6C,0x69,0x62,0x73,0x74,0x64,0x63,0x2B,0x2B,0x20,0x2D,0x73,0x74,0x61,0x74,0x69,0x63,0x2D,0x6C,0x69,0x62,0x67,0x63,0x63,0x20,0x2D,0x57,0x6C,0x2C,0x2D,0x42,0x73,0x74,0x61,0x74,0x69,0x63,0x2C,0x2D,0x2D,0x77,0x68,0x6F,0x6C,0x65,0x2D,0x61,0x72,0x63,0x68,0x69,0x76,0x65,0x20,0x2D,0x6C,0x77,0x69,0x6E,0x70,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x2D,0x57,0x6C,0x2C,0x2D,0x42,0x64,0x79,0x6E,0x61,0x6D,0x69,0x63,0x2C,0x2D,0x2D,0x6E,0x6F,0x2D,0x77,0x68,0x6F,0x6C,0x65,0x2D,0x61,0x72,0x63,0x68,0x69,0x76,0x65,0x0A,0x47,0x44,0x42,0x5F,0x57,0x49,0x4E,0x09,0x09,0x09,0x3D,0x20,0x67,0x64,0x62,0x0A,0x43,0x50,0x50,0x5F,0x57,0x49,0x4E,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x43,0x43,0x5F,0x57,0x49,0x4E,0x29,0x20,0x24,0x28,0x43,0x43,0x5F,0x46,0x4C,0x41,0x47,0x5F,0x57,0x49,0x4E,0x29,0x0A,0x47,0x43,0x43,0x5F,0x57,0x49,0x4E,0x09,0x09,0x09,0x3D,0x20,0x67,0x63,0x63,0x20,0x24,0x28,0x43,0x43,0x5F,0x46,0x4C,0x41,0x47,0x5F,0x57,0x49,0x4E,0x29,0x0A,0x43,0x50,0x50,0x5F,0x44,0x4C,0x4C,0x5F,0x57,0x49,0x4E,0x09,0x09,0x3D,0x20,0x24,0x28,0x43,0x50,0x50,0x5F,0x57,0x49,0x4E,0x29,0x20,0x2D,0x73,0x68,0x61,0x72,0x65,0x64,0x0A,0x47,0x43,0x43,0x5F,0x44,0x4C,0x4C,0x5F,0x57,0x49,0x4E,0x09,0x09,0x3D,0x20,0x24,0x28,0x47,0x43,0x43,0x5F,0x57,0x49,0x4E,0x29,0x20,0x2D,0x73,0x68,0x61,0x72,0x65,0x64,0x0A,0x0A,0x43,0x43,0x5F,0x4C,0x4E,0x58,0x09,0x09,0x09,0x3D,0x20,0x67,0x2B,0x2B,0x20,0x2D,0x73,0x74,0x64,0x3D,0x63,0x2B,0x2B,0x31,0x31,0x0A,0x43,0x43,0x5F,0x46,0x4C,0x41,0x47,0x5F,0x4C,0x4E,0x58,0x09,0x09,0x3D,0x20,0x2D,0x4F,0x32,0x20,0x2D,0x6D,0x24,0x28,0x4F,0x53,0x42,0x49,0x54,0x53,0x29,0x20,0x2D,0x70,0x74,0x68,0x72,0x65,0x61,0x64,0x20,0x2D,0x66,0x50,0x49,0x43,0x20,0x2D,0x44,0x58,0x47,0x5F,0x4C,0x49,0x4E,0x55,0x58,0x0A,0x47,0x44,0x42,0x5F,0x4C,0x4E,0x58,0x09,0x09,0x09,0x3D,0x20,0x67,0x64,0x62,0x0A,0x43,0x50,0x50,0x5F,0x4C,0x4E,0x58,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x43,0x43,0x5F,0x4C,0x4E,0x58,0x29,0x20,0x24,0x28,0x43,0x43,0x5F,0x46,0x4C,0x41,0x47,0x5F,0x4C,0x4E,0x58,0x29,0x0A,0x47,0x43,0x43,0x5F,0x4C,0x4E,0x58,0x09,0x09,0x09,0x3D,0x20,0x67,0x63,0x63,0x20,0x24,0x28,0x43,0x43,0x5F,0x46,0x4C,0x41,0x47,0x5F,0x4C,0x4E,0x58,0x29,0x0A,0x43,0x50,0x50,0x5F,0x44,0x4C,0x4C,0x5F,0x4C,0x4E,0x58,0x09,0x09,0x3D,0x20,0x24,0x28,0x43,0x50,0x50,0x5F,0x4C,0x4E,0x58,0x29,0x20,0x2D,0x73,0x68,0x61,0x72,0x65,0x64,0x0A,0x47,0x43,0x43,0x5F,0x44,0x4C,0x4C,0x5F,0x4C,0x4E,0x58,0x09,0x09,0x3D,0x20,0x24,0x28,0x47,0x43,0x43,0x5F,0x4C,0x4E,0x58,0x29,0x20,0x2D,0x73,0x68,0x61,0x72,0x65,0x64,0x0A,0x0A,0x43,0x43,0x09,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x43,0x43,0x5F,0x24,0x28,0x4F,0x53,0x4E,0x41,0x4D,0x45,0x29,0x29,0x0A,0x43,0x50,0x50,0x09,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x43,0x50,0x50,0x5F,0x24,0x28,0x4F,0x53,0x4E,0x41,0x4D,0x45,0x29,0x29,0x0A,0x47,0x43,0x43,0x09,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x47,0x43,0x43,0x5F,0x24,0x28,0x4F,0x53,0x4E,0x41,0x4D,0x45,0x29,0x29,0x0A,0x47,0x44,0x42,0x09,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x47,0x44,0x42,0x5F,0x24,0x28,0x4F,0x53,0x4E,0x41,0x4D,0x45,0x29,0x29,0x0A,0x43,0x50,0x50,0x5F,0x44,0x4C,0x4C,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x43,0x50,0x50,0x5F,0x44,0x4C,0x4C,0x5F,0x24,0x28,0x4F,0x53,0x4E,0x41,0x4D,0x45,0x29,0x29,0x0A,0x47,0x43,0x43,0x5F,0x44,0x4C,0x4C,0x09,0x09,0x09,0x3D,0x20,0x24,0x28,0x47,0x43,0x43,0x5F,0x44,0x4C,0x4C,0x5F,0x24,0x28,0x4F,0x53,0x4E,0x41,0x4D,0x45,0x29,0x29,0x0A,0x0A,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x0A,0x0A,0x49,0x4E,0x43,0x5F,0x53,0x51,0x4C,0x49,0x54,0x45,0x09,0x09,0x3D,0x20,0x2D,0x49,0x24,0x28,0x4C,0x49,0x42,0x52,0x41,0x52,0x59,0x5F,0x50,0x41,0x54,0x48,0x29,0x2F,0x73,0x71,0x6C,0x69,0x74,0x65,0x0A,0x4C,0x49,0x42,0x5F,0x53,0x51,0x4C,0x49,0x54,0x45,0x09,0x09,0x3D,0x20,0x2D,0x4C,0x24,0x28,0x4C,0x49,0x42,0x5F,0x4F,0x55,0x54,0x50,0x55,0x54,0x5F,0x50,0x41,0x54,0x48,0x29,0x20,0x2D,0x6C,0x73,0x71,0x6C,0x69,0x74,0x65,0x0A,0x0A,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x0A,0x0A,0x49,0x4E,0x43,0x5F,0x4F,0x50,0x45,0x4E,0x53,0x53,0x4C,0x09,0x09,0x3D,0x20,0x2D,0x49,0x24,0x28,0x4C,0x49,0x42,0x5F,0x4F,0x55,0x54,0x50,0x55,0x54,0x5F,0x50,0x41,0x54,0x48,0x29,0x2F,0x6F,0x70,0x65,0x6E,0x73,0x73,0x6C,0x2F,0x69,0x6E,0x63,0x0A,0x4C,0x49,0x42,0x5F,0x4F,0x50,0x45,0x4E,0x53,0x53,0x4C,0x09,0x09,0x3D,0x20,0x2D,0x4C,0x24,0x28,0x4C,0x49,0x42,0x5F,0x4F,0x55,0x54,0x50,0x55,0x54,0x5F,0x50,0x41,0x54,0x48,0x29,0x20,0x2D,0x6C,0x6F,0x70,0x65,0x6E,0x73,0x73,0x6C,0x20,0x2D,0x4C,0x24,0x28,0x4C,0x49,0x42,0x5F,0x4F,0x55,0x54,0x50,0x55,0x54,0x5F,0x50,0x41,0x54,0x48,0x29,0x2F,0x6F,0x70,0x65,0x6E,0x73,0x73,0x6C,0x2F,0x6C,0x69,0x62,0x20,0x2D,0x6C,0x73,0x73,0x6C,0x20,0x2D,0x6C,0x63,0x72,0x79,0x70,0x74,0x6F,0x00};return (char*)(data);}static const char* GetBashfile(){static u_char data[] = {0x23,0x20,0x73,0x68,0x65,0x6C,0x6C,0x20,0x70,0x72,0x6F,0x66,0x69,0x6C,0x65,0x0A,0x23,0x20,0x63,0x72,0x65,0x61,0x74,0x65,0x64,0x20,0x62,0x79,0x20,0x78,0x75,0x6E,0x67,0x65,0x6E,0x0A,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x0A,0x0A,0x4F,0x53,0x54,0x59,0x50,0x45,0x3D,0x60,0x75,0x6E,0x61,0x6D,0x65,0x60,0x0A,0x0A,0x69,0x66,0x20,0x5B,0x20,0x2D,0x7A,0x20,0x24,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x49,0x4E,0x53,0x54,0x41,0x4C,0x4C,0x5F,0x48,0x4F,0x4D,0x45,0x20,0x5D,0x0A,0x74,0x68,0x65,0x6E,0x0A,0x09,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x49,0x4E,0x53,0x54,0x41,0x4C,0x4C,0x5F,0x48,0x4F,0x4D,0x45,0x3D,0x24,0x28,0x63,0x64,0x20,0x22,0x24,0x28,0x64,0x69,0x72,0x6E,0x61,0x6D,0x65,0x20,0x22,0x24,0x7B,0x42,0x41,0x53,0x48,0x5F,0x53,0x4F,0x55,0x52,0x43,0x45,0x5B,0x30,0x5D,0x7D,0x22,0x29,0x22,0x20,0x26,0x26,0x20,0x70,0x77,0x64,0x29,0x0A,0x66,0x69,0x0A,0x0A,0x69,0x66,0x20,0x5B,0x20,0x22,0x24,0x4F,0x53,0x54,0x59,0x50,0x45,0x22,0x20,0x3D,0x3D,0x20,0x22,0x4C,0x69,0x6E,0x75,0x78,0x22,0x20,0x5D,0x0A,0x74,0x68,0x65,0x6E,0x0A,0x09,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x4F,0x53,0x54,0x59,0x50,0x45,0x3D,0x4C,0x4E,0x58,0x0A,0x09,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x45,0x4E,0x56,0x50,0x41,0x54,0x48,0x4A,0x4F,0x49,0x4E,0x3D,0x22,0x3A,0x22,0x0A,0x09,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x48,0x4F,0x4D,0x45,0x3D,0x24,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x49,0x4E,0x53,0x54,0x41,0x4C,0x4C,0x5F,0x48,0x4F,0x4D,0x45,0x2F,0x70,0x72,0x6F,0x64,0x75,0x63,0x74,0x0A,0x65,0x6C,0x73,0x65,0x0A,0x09,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x4F,0x53,0x54,0x59,0x50,0x45,0x3D,0x57,0x49,0x4E,0x0A,0x09,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x45,0x4E,0x56,0x50,0x41,0x54,0x48,0x4A,0x4F,0x49,0x4E,0x3D,0x22,0x3B,0x22,0x0A,0x09,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x48,0x4F,0x4D,0x45,0x3D,0x24,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x49,0x4E,0x53,0x54,0x41,0x4C,0x4C,0x5F,0x48,0x4F,0x4D,0x45,0x2F,0x70,0x72,0x6F,0x64,0x75,0x63,0x74,0x2F,0x77,0x69,0x6E,0x0A,0x66,0x69,0x0A,0x0A,0x69,0x66,0x20,0x5B,0x20,0x60,0x77,0x68,0x69,0x63,0x68,0x20,0x67,0x65,0x74,0x63,0x6F,0x6E,0x66,0x20,0x32,0x3E,0x20,0x2F,0x64,0x65,0x76,0x2F,0x6E,0x75,0x6C,0x6C,0x20,0x7C,0x20,0x77,0x63,0x20,0x2D,0x6C,0x60,0x20,0x2D,0x67,0x74,0x20,0x30,0x20,0x5D,0x0A,0x74,0x68,0x65,0x6E,0x0A,0x09,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x4F,0x53,0x42,0x49,0x54,0x3D,0x60,0x67,0x65,0x74,0x63,0x6F,0x6E,0x66,0x20,0x4C,0x4F,0x4E,0x47,0x5F,0x42,0x49,0x54,0x60,0x0A,0x65,0x6C,0x73,0x65,0x0A,0x09,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x4F,0x53,0x42,0x49,0x54,0x3D,0x36,0x34,0x0A,0x66,0x69,0x0A,0x0A,0x4D,0x59,0x53,0x51,0x4C,0x5F,0x48,0x4F,0x4D,0x45,0x3D,0x24,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x48,0x4F,0x4D,0x45,0x2F,0x6C,0x69,0x62,0x2F,0x6D,0x79,0x73,0x71,0x6C,0x0A,0x4F,0x50,0x45,0x4E,0x53,0x53,0x4C,0x5F,0x48,0x4F,0x4D,0x45,0x3D,0x24,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x48,0x4F,0x4D,0x45,0x2F,0x6C,0x69,0x62,0x2F,0x6F,0x70,0x65,0x6E,0x73,0x73,0x6C,0x0A,0x0A,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x4C,0x41,0x4E,0x47,0x3D,0x7A,0x68,0x5F,0x43,0x4E,0x2E,0x55,0x54,0x46,0x2D,0x38,0x0A,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x50,0x41,0x54,0x48,0x3D,0x24,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x48,0x4F,0x4D,0x45,0x2F,0x62,0x69,0x6E,0x3A,0x24,0x50,0x41,0x54,0x48,0x0A,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x4C,0x44,0x5F,0x4C,0x49,0x42,0x52,0x41,0x52,0x59,0x5F,0x50,0x41,0x54,0x48,0x3D,0x24,0x4D,0x59,0x53,0x51,0x4C,0x5F,0x48,0x4F,0x4D,0x45,0x2F,0x6C,0x69,0x62,0x3A,0x24,0x4F,0x50,0x45,0x4E,0x53,0x53,0x4C,0x5F,0x48,0x4F,0x4D,0x45,0x2F,0x6C,0x69,0x62,0x3A,0x24,0x4C,0x44,0x5F,0x4C,0x49,0x42,0x52,0x41,0x52,0x59,0x5F,0x50,0x41,0x54,0x48,0x0A,0x0A,0x69,0x66,0x20,0x5B,0x20,0x22,0x24,0x4F,0x53,0x54,0x59,0x50,0x45,0x22,0x20,0x3D,0x3D,0x20,0x22,0x57,0x49,0x4E,0x22,0x20,0x5D,0x0A,0x74,0x68,0x65,0x6E,0x0A,0x09,0x65,0x78,0x70,0x6F,0x72,0x74,0x20,0x50,0x41,0x54,0x48,0x3D,0x24,0x4C,0x44,0x5F,0x4C,0x49,0x42,0x52,0x41,0x52,0x59,0x5F,0x50,0x41,0x54,0x48,0x3A,0x24,0x43,0x50,0x50,0x57,0x45,0x42,0x5F,0x50,0x52,0x4F,0x44,0x55,0x43,0x54,0x5F,0x48,0x4F,0x4D,0x45,0x2F,0x67,0x63,0x63,0x2F,0x62,0x69,0x6E,0x3A,0x24,0x50,0x41,0x54,0x48,0x0A,0x66,0x69,0x00};return (char*)(data);}bool HasFile(const string& path){FILE* file = fopen(path.c_str(), "rb");if (file == NULL) return false;fclose(file);return true;}string GetFileContent(const string& path){string str;string res;ifstream file;file.open(path);while (getline(file, str)){res += str + "\n";}file.close();return res;}time_t GetFileUpdateTime(const char* path){#ifdef __WINNT__HANDLE handle = CreateFileA(path, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);if (handle){struct tm t;FILETIME ft;SYSTEMTIME st;SYSTEMTIME utc;if (GetFileTime(handle, NULL, NULL, &ft) && FileTimeToSystemTime(&ft, &utc)){SystemTimeToTzSpecificLocalTime(NULL, &utc, &st);t.tm_year = st.wYear - 1900;t.tm_mon = st.wMonth - 1;t.tm_mday = st.wDay;t.tm_sec = st.wSecond;t.tm_min = st.wMinute;t.tm_hour = st.wHour;CloseHandle(handle);return mktime(&t);}CloseHandle(handle);}#elsestruct stat info;if (stat(path, &info) == 0) return info.st_mtime;#endifreturn 0;}bool AppendFile(const string& path, const string& content, bool clear, bool normal = true){FILE* file = NULL;string msg = content;static time_t ctime = GetFileUpdateTime(__FILE__);if (normal){time_t utime = GetFileUpdateTime(path.c_str());if (ctime > 0 && utime > 0 && ctime < utime) return true;}file = fopen(path.c_str(), clear ? "wb+" : "ab+");if (file == NULL) return false;fwrite(msg.c_str(), msg.length(), 1, file);fclose(file);return true;}string replace(const string& str, const string& src, const string& dest){if (str.empty()) return str;string res;const char* q = NULL;const char* p = str.c_str();while (*p){if ((q = strstr(p, src.c_str())) == NULL){res.append(p);break;}res.append(p, q);res.append(dest);p = q + src.length();}return res;}int main(int argc, char** argv){char buffer[1024] = {0};const char* home = getenv("HOME");const char* path = getcwd(buffer, sizeof(buffer) - 1);if (home == NULL || path == NULL){printf("getcwd failed[%d][%s]\n", errno, strerror(errno));return -1;}#ifdef __WINNT__string bashfile = replace(home, "\\", "/") + "/.bash_profile";string installpath = "/c/cppweb";#elsestring bashfile = "/etc/profile";string installpath = "/opt/cppweb";#endifif (argc > 1 && strcmp(argv[1], "env") == 0){string path = installpath + "/webprofile";string content = GetFileContent(bashfile);if (content.find(path) == string::npos){snprintf(buffer, sizeof(buffer), "\nif [ -f %s ]\nthen\n\t. %s\nfi", path.c_str(), path.c_str());AppendFile(bashfile, buffer, false, false);}}string tmp;string profile = GetBashfile();string makefile = GetMakefile();string makeconf = GetMakeconf();string filepath = replace(path, "\\", "/");path = filepath.c_str();if (HasFile("/usr/include/openssl/ssl.h")){makeconf = replace(makeconf, "$(LIB_OUTPUT_PATH)/openssl/inc", "/usr/include");}else if (HasFile("/usr/local/include/openssl/ssl.h")){makeconf = replace(makeconf, "$(LIB_OUTPUT_PATH)/openssl/inc", "/usr/local/include");}if (HasFile("/lib/libssl.so")){makeconf = replace(makeconf, "$(LIB_OUTPUT_PATH)/openssl/lib", "/lib");}else if (HasFile("/lib64/libssl.so")){makeconf = replace(makeconf, "$(LIB_OUTPUT_PATH)/openssl/lib", "/lib64");}else if (HasFile("/usr/lib/libssl.so")){makeconf = replace(makeconf, "$(LIB_OUTPUT_PATH)/openssl/lib", "/usr/lib");}else if (HasFile("/usr/lib64/libssl.so")){makeconf = replace(makeconf, "$(LIB_OUTPUT_PATH)/openssl/lib", "/usr/lib64");}else if (HasFile("/usr/local/lib/libssl.so")){makeconf = replace(makeconf, "$(LIB_OUTPUT_PATH)/openssl/lib", "/usr/local/lib");}else if (HasFile("/usr/local/lib64/libssl.so")){makeconf = replace(makeconf, "$(LIB_OUTPUT_PATH)/openssl/lib", "/usr/local/lib64");}else if (HasFile("/usr/lib/x86_64-linux-gnu/libssl.so")){makeconf = replace(makeconf, "$(LIB_OUTPUT_PATH)/openssl/lib", "/usr/lib/x86_64-linux-gnu");}const char* mysqlpath = "library/dbx/makefile";if ((tmp = GetFileContent(mysqlpath)).empty()){printf("read file[%s] failed[%d][%s]\n", mysqlpath, errno, strerror(errno));return -1;}#ifdef __WINNT__if (HasFile("product/win/lib/mysql/lib/mysqlclient.lib"))#elseif (HasFile("product/lib/mysql/lib/libmysqlclient.so"))#endif{if (tmp.find("target: base pool sqlite sqlitepool mysqlpool") == string::npos){tmp = replace(tmp, "target: base pool sqlite sqlitepool", "target: base pool sqlite sqlitepool mysqlpool");}}else{if (tmp.find("target: base pool sqlite sqlitepool mysqlpool") != string::npos){tmp = replace(tmp, "target: base pool sqlite sqlitepool mysqlpool", "target: base pool sqlite sqlitepool");}}makefile = replace(makefile, "$CPPWEB_INSTALL_HOME", installpath);AppendFile(mysqlpath, tmp, true);AppendFile(filepath + "/makefile", makefile, true);AppendFile(filepath + "/makeconf", makeconf, true);AppendFile(filepath + "/.webprofile", profile, true);return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型