8 Star 17 Fork 9

LibQQt应用程序开发组织 / Multi-environ Technology(PyMake)

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 76.27 KB
一键复制 编辑 原始数据 按行查看 历史
T.D.R. 提交于 2021-04-19 13:03 . update TOOLS.md.

PyMake

  • If you'd like to make cross-platform project, but cmake can't build, it need to config running environment ?
  • If you have issued want to depend some projects generated by cmake qmake autotools e.g but they all need to change not alike variable about environment across third platforms at least?
  • Now pymake make beautiful, config once by use it in any platforms.

Repo

https://gitee.com/drabel/PyMake
https://github.com/AbelTian/PyMake.git

Deployment

  • PyMake v6 is deployed at 2017/10/12.
  • PyMake v7 is deployed at 2019/03/18.
  • PyMake v8 is deployed at 2021/04/14.

Install

In pymake source directory.

Windows: [admin authority]
install.bat %*

Unix: [sudo]
install.sh

on console, use pymake cc cmd-name to execute command stream.
on console, use pymake ccvp cmd-name to execute command stream with params.

Usage:

Version 1.0

work-store-directory>python path/to/pymake.py -h

use source config: pymake.json
PyMake 1.0.

Usage:
  pymake.py source [ --delete | --add | --switch ] [ <config-file-name> ]
  pymake.py source [ --list | --restore ]
  pymake.py list-path [ --keys | --values ]
  pymake.py config ( --toolchain | --genmake | --make | --build ) <path>
  pymake.py other-bin ( --add | --del | --mod ) <name> [ <path> ]
  pymake.py (generate|build|install)
  pymake.py genmake <genmake-command>
  pymake.py (-h | --help)
  pymake.py --version

Command:
  source        switch to another config file
  genmake       execute genmake command after
  generate
  build
  install       pymake command
  config        config toolchain path
  list-path
  other-bin     modify the other bin path to env

Options:
  -h --help     Show this screen.
  --version     Show version.
  --add
  --del --delete
  --mod         add or delete or modify a config or path
  --switch      switch to another source
  --keys
  --values
  --toolchain   set toolchain path in source config file
  --build       set build directory in souce config file
  --genmake     set genmake directory in current souce
  --make        set make directory in current source config file
  --list        list haved source files
  --restore     reset to pymake.json source config file

You can follow this tips to do configure thing. now it support cmake.

How to Configure

From config file

pymake.ini

[pymake]
config = pymake.json

it switch to current config file to do any make tasks

pymake.json

{
    "add-to-env": {
        "PYMAKE_TOOLCHAIN_PATH": "C:/Users/Administrator/Qt/Tools/mingw530_32/bin", 
        "PYMAKE_GENMAKE_PATH": "Z:/abel/Develop/b0-toolskits/compliers/cmake3.9.1_64/bin",
        "PYMAKE_MAKE_PATH": "C:/Users/Administrator/Qt/Tools/mingw530_32/bin"
    }, 
    "source-to-build": {
        "PYMAKE_BUILD_PATH": "Z:/abel/Develop/a0-Developworkspace/a0-qqtpruduct-qqtfoundation/build", 
        "PYMAKE_GENMAKE_COMMAND": "cmake -G\"MinGW Makefiles\" ../", 
        "PYMAKE_MAKE_COMMAND": "mingw32-make", 
        "PYMAKE_INSTALL_COMMAND": "mingw32-make install"
    }, 
    "add-other-bin-path-to-env": {
        "qt5.9-win32": "C:/Users/Administrator/Qt/5.9.1/mingw53_32/bin"
    }
}

I use json format to store the configure, it is easy to read. You can make some lot of by this file(also template) to create new building task file.

From command-line

work-store-directory>python path/to/pymake.py ...

from command-line, you can config all that path and command. program will follow configured file, chdir to build path, then execute your command to generate build install e.g. You can also execute genmake command raw from this program command-line.

Version 6

You need install python3 (python2 is alse support, but suggest 3)
You should use link to make a link mm to pymake.sh. in windows, create mm.bat in windows dir call pymake.bat

Firstly, you need set source root to store all of your source config file
Secondly, config the source file, prepare to auto shell all your command

any-direcotory>mm

Usage:
  pymake6.py source
  pymake6.py source root [ <source-root-path> ]
  pymake6.py source config [ --add | --del | --mod | --switch | --restore | --show ] [ <config-file-name> ] [<new-config-file-name>]
  pymake6.py set path ( --add | --del | --mod ) <name> [ <value> ]
  pymake6.py set env cur <name>
  pymake6.py set env [ path ] ( --add | --del | --mod ) <group> <name> [ <value> ]
  pymake6.py set cmd (--add | --del | --mod ) <name> [ <values> ... ]
  pymake6.py export [ <name> ]
  pymake6.py list ( path | env | cmd ) [-r | --raw]
  pymake6.py k [ <name> ]
  pymake6.py (-h | --help)
  pymake6.py --version

Program will make .pymake config root to config the pymake, but, in windows it is set in appdata directory

[pymake]

[source]
root = /Users/abel/Develop/c0-buildconfig
config = pymake6-mac.json

Json file is Changed

    "path-assemblage": {
        "root": "/Users/abel/Develop",
        "root.src": "${root}/a0-develop",
        "root.prod": "${root}/b1-product",
        "root.tool": "${root}/b0-toolskits",
        "root.build": "${root}/c0-buildstation",
        "root.test": "${root}/c2-test",
        "root.webrc": "${root}/c1-webrc",
        "cc": "${root.tool}/compiler",
        "cmake.bin": "${cc}/CMake.app/Contents/bin",
        "qt": "${root.tool}/macLibraries/Qt",
        "qt5.9.clang": "${qt}/5.9.1/clang_64",
        "qt5.8.android_x86": "${qt}/5.8/android_x86",
        "qt5.8.android_arm": "${qt}/5.8/android_armv7",
        "qt5.8.clang": "${qt}/5.8/clang_64",
        "qt5.8.ios": "${qt}/5.8/ios",
        "qt4.8.clang": "${qt}/4.8.7/clang_64",
        "qt5.9.clang.bin": "${qt}/5.9.1/clang_64/bin",
        "qt5.8.android_x86.bin": "${qt}/5.8/android_x86/bin",
        "qt5.8.android_arm.bin": "${qt}/5.8/android_armv7/bin",
        "qt5.8.clang.bin": "${qt}/5.8/clang_64/bin",
        "qt5.8.ios.bin": "${qt}/5.8/ios/bin",
        "qt4.8.clang.bin": "${qt}/4.8.7/clang_64/bin",
        "android": "${root.tool}/macAndroidLibraries",
        "android.sdk": "${android}/android-sdk-macosx",
        "android.ndk": "${android}/android-ndk-r13b",
        "android.ant": "${android}/apache-ant-1.10.1",
        "android.java": "${android}/java-macosx/Java/JavaVirtualMachines",
        "sdk.plat.tool": "${android.sdk}/platform-tools",
        "sdk.build.tool": "${android.sdk}/build-tools",
        "sdk.tool": "${android.sdk}/tools",
        "java1.7.home": "${android.java}/jdk1.7.0_79.jdk/Contents/Home",
        "java1.8.home": "${android.java}/jdk1.8.0_111.jdk/Contents/Home",
        "java1.9.home": "${android.java}/jdk9.jdk/Contents/Home",
        "java1.7.bin": "${java1.7.home}/bin",
        "java1.8.bin": "${java1.8.home}/bin",
        "java1.9.bin": "${java1.9.home}/bin",
        "ant.bin": "${android.ant}/bin",
        "ndk.arm": "${android.ndk}/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64",
        "ndk.x86": "${android.ndk}/toolchains/x86-4.9/prebuilt/darwin-x86_64",
        "ndk.x86_64": "${android.ndk}/toolchains/x86_64-4.9/prebuilt/darwin-x86_64",
        "ndk.arm.bin": "${ndk.arm}/bin",
        "ndk.x86.bin": "${ndk.x86}/bin",
        "ndk.x86_64.bin": "${ndk.x86_64}/bin",
        "mac.sdk": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks"
    },
    "environ": {
        "android.mobile": {
            "path+": [
                "${cmake.bin}",
                "${qt5.8.android_arm.bin}",
                "${java1.8.bin}",
                "${android.sdk}",
                "${sdk.plat.tool}",
                "${sdk.build.tool}",
                "${sdk.tool}",
                "${ant.bin}",
                "${ndk.arm.bin}"
            ],
            "ANDROID_API_VERSION": "android-23",
            "ANDROID_SDK_ROOT": "${android.sdk}",
            "ANDROID_NDK_ROOT": "${android.ndk}",
            "ANDROID_NDK_HOST": "darwin-x86_64",
            "ANDROID_NDK_TOOLCHAIN_PREFIX": "arm-linux-androideabi",
            "ANDROID_NDK_TOOLCHAIN_VERSION": "4.9",
            "ANDROID_NDK_PLATFORM": "android-23",
            "NDK_TOOLCHAIN_PATH": "${ndk.arm.bin}",
            "NDK_TOOLS_PREFIX": "arm-linux-androideabi",
            "PYMAKE_MYNAME": "T.D.R",
            "a_special_var_const": "hello world",
            "QKIT": "Android",
            "QTDIR": "${qt5.8.android_arm}",
            "QTSPEC": "android-g++",
            "QTCONFIG": "arm",
            "JAVA_HOME": "${java1.8.home}",
            "CLASSPATH": ".:${JAVA_HOME}/lib/dt/jar:${JAVA_HOME}/lib/tools.jar"
        },
        "android.x86": {
            "path+": [
                "${cmake.bin}",
                "${qt5.8.android_x86.bin}",
                "${java1.8.bin}",
                "${android.sdk}",
                "${sdk.plat.tool}",
                "${sdk.build.tool}",
                "${sdk.tool}",
                "${ant.bin}",
                "${ndk.x86.bin}"
            ],
            "CLICOLOR": "1",
            "ANDROID_API_VERSION": "android-23",
            "ANDROID_SDK_ROOT": "${android.sdk}",
            "ANDROID_NDK_ROOT": "${android.ndk}",
            "ANDROID_NDK_HOST": "darwin-x86_64",
            "ANDROID_NDK_TOOLCHAIN_PREFIX": "x86",
            "ANDROID_NDK_TOOLCHAIN_VERSION": "4.9",
            "ANDROID_NDK_PLATFORM": "android-23",
            "NDK_TOOLCHAIN_PATH": "${ndk.x86.bin}",
            "NDK_TOOLS_PREFIX": "i686-linux-android",
            "QKIT": "Android",
            "QTDIR": "${qt5.8.android_x86}",
            "QTSPEC": "android-g++",
            "QTCONFIG": "arm",
            "JAVA_HOME": "${java1.8.home}",
            "CLASSPATH": ".:${JAVA_HOME}/lib/dt/jar:${JAVA_HOME}/lib/tools.jar"
        },
        "qt.android": {
            "path+": [
                "${cmake.bin}",
                "${qt5.9.clang.bin}",
                "${java1.8.bin}",
                "${android.sdk}",
                "${sdk.plat.tool}",
                "${sdk.build.tool}",
                "${sdk.tool}",
                "${ant.bin}",
                "${ndk.arm.bin}"
            ],
            "ANDROID_API_VERSION": "android-23",
            "ANDROID_SDK_ROOT": "${android.sdk}",
            "ANDROID_NDK_ROOT": "${android.ndk}",
            "ANDROID_NDK_HOST": "darwin-x86_64",
            "ANDROID_NDK_TOOLCHAIN_PREFIX": "i686-linux-android",
            "ANDROID_NDK_TOOLCHAIN_VERSION": "4.9",
            "ANDROID_NDK_PLATFORM": "android-23",
            "NDK_TOOLCHAIN_PATH": "${ndk.arm.bin}",
            "NDK_TOOLS_PREFIX": "i686-linux-android",
            "QKIT": "macOS",
            "QTDIR": "${qt5.9.clang}",
            "QTSPEC": "macx-clang",
            "QTCONFIG": "x86_64",
            "JAVA_HOME": "${java1.8.home}",
            "CLASSPATH": ".:${JAVA_HOME}/lib/dt/jar:${JAVA_HOME}/lib/tools.jar"
        },
        "qt": {
            "path+": [
                "${cmake.bin}",
                "${qt5.9.clang.bin}"
            ],
            "QKIT": "macOS",
            "QTDIR": "${qt5.9.clang}",
            "QTSPEC": "macx-clang",
            "QTCONFIG": "x86_64"
        },
        "current": "qt.android"
    },
    "variable-assemblage": [
        "QQt",
        "a0-qqtfoundation",
        "${root.build}/${qqt.proj.name}/${qt.sys.mac}/${build.release}",
        "${root.src}/${qqt.proj.name}",
        "${qqt.proj.name}.pro",
        "${qqt.build.path}/src/bin",
        "${root.prod}/QQt",
        "qqtframe",
        "${qqt.build.path}/examples/${qqtframe.prod.name}/bin",
        "${qqt.build.path}/src/bin/QQt.framework",
        "QQt.framework/Versions/1/QQt",
        "${root.tool}/Source/qt5",
        "${root.build}/qt5",
        "androiddeployqt",
        "macdeployqt",
        "DownloadQueue",
        "/Users/abel/Develop/c1-webrc/DownloadQueue/DownloadQueue.pro",
        "${root.build}/${app.name}",
        "macdeployqt ${app.path.build}/${app.name}.app",
        "${prod.name}.app",
        "${mac.app}/Contents",
        "${mac.app.content}/MacOS",
        "${mac.app.content}/Frameworks",
        "${mac.app.content}/Resources",
        "${mac.app.content}/PlugIns",
        "${prod.name}.framework",
        "${prod.name}.framework/Versions",
        "${prod.name}.framework/Resources",
        "macdeployqt ${}"
    ],
    "command-assemblage": [
        "I'm not similar to these command, so list them here, rather than forgotten them",
        "cl-command, sys-command",
        "replace? no, append? easy!",
        "help you to remeber these command.",
        "mkdir -p ${qqt.build.path}",
        "cd ${build-path}",
        "cmake -G\"Unix Makefiles\" -DCMAKE_INSTALL_PREFIX=${prod-root} ${source-path}",
        "cmake -GXCode -DCMAKE_INSTALL_PREFIX=${prod-root} ${source-path}",
        "rm -f CMakeCache.txt",
        "qmake ${source-path}/${qmake-file} -spec ${QTSPEC} CONFIG+=${QTCONFIG} && make qmake_all",
        "make -j4",
        "make clean in ${build-path}",
        "make install",
        "${deployqt} ${bin-path}/${app-bundle} -verbose=1",
        "${deployqt} -dmg",
        "${deployqt} --help",
        "cp -fr ${lib-dep} ${lib-native}",
        "install_name_tool -change ${lib-dep-name} @rpath/${lib-dep-name} ${app-native}/${prod-name} ",
        "install_name_tool -change $LibDep @rpath/$LibDep ${app-native}/${prod-name} ",
        "${source-path}/configure -prefix ${install-path} -hostprefix ${install-path} -xplatform android-g++ -release -nomake tests -nomake examples -android-ndk $ANDROID_NDK_ROOT -android-sdk $ANDROID_SDK_ROOT -android-ndk-host $ANDROID_NDK_HOST -android-toolchain-version $ANDROID_NDK_TOOLCHAIN_VERSION -skip qtwebkit-examples -no-warnings-are-errors",
        "${qt5.path.source}/configure -prefix ${qt5.path.install} -hostprefix ${qt5.path.install} -xplatform android-g++ -release -nomake tests -nomake examples -android-ndk $ANDROID_NDK_ROOT -android-sdk $ANDROID_SDK_ROOT -android-ndk-host $ANDROID_NDK_HOST -android-toolchain-version $ANDROID_NDK_TOOLCHAIN_VERSION -skip qtwebkit-examples -no-warnings-are-errors"
    ],
    "command": {
        "qqt.build": [
            "src=/Users/abel/Develop/a0-develop/a0-qqtfoundation/a0-qqtfoundation.pro",
            "build=/Users/abel/Develop/c0-buildstation/a0-qqtfoundation/MacOS/Release",
            "mkdir -p $build",
            "cd $build",
            "qmake $src -spec ${QTSPEC} CONFIG+=${QTCONFIG} && make qmake_all",
            "make -j4"
        ],
        "qt": [
            "cd ${root.build}",
            "open \"/Applications/Qt Creator.app\""
        ],
        "android": [
            "/Users/abel/Develop/b0-toolskits/macAndroidLibraries/android-sdk-macosx/tools/android"
        ]
    }

You need config path-esseblage, and environ, command. Others are stored for memeory You can follow example.sh in bash file use this pymake, and you can follow example2.sh in command-line use this program

Version 6.2

Only update the command-line.
command line screenshot

Version 7.0

Update the command-line.
command line screenshot

Screen shot

using screenshot

Version 7.2

Update the command-line.

  1. add lots of abb-command, about hh command.
  2. update use command to use custom env to do everything.
  3. add see command.
  4. add have/has command.
  5. add program command.
  6. add get command.
  7. add port and translate command.
  8. add initialize command.
  9. add port/translate command.
  10. add user support shell.

command line screenshot
command line screenshot
command line screenshot

Version 7.4

  1. custom path and env variable, common to use.
  2. spread all over pc script.
  3. any work root.
  4. high-quality executing ability.
  5. appoint environ.
  6. abundant command in environ .json stored.
  7. all are in user environment source root.

Version 7.5

  1. add powershell command.
    • all .json environ can be used in powershell environment.
  2. add custom environment.
    • user can store temporary or common path and variable in custom.path+.ini or custom.var+.ini.
    • these environment can be used in powershell environment.
    • you can open custom mobule or close it.

Version 7.6

  1. update all command.
  2. support winxp/msys.
  3. add local command.
  4. add language command to support lua\php\perl e.g. script file and command.
  5. update all script .bat .sh shortcut.
  6. update get all settings command for seeing env.
  7. add pytype and pyclean shortcut script.
  8. add quotes to params with blank.

Version 7.7

  1. add vc command.
  2. update pyvc ... shortcuts.
  3. add export2/type2 command.
  4. add open command.
  5. add tools, a c/s file transporter.

Version 8.0

  1. update vc command, support vcbuildtools.
  2. add pyvcenv shortcut.
  3. update example.
  4. add pycomm/pymake8_initial.py, support secondary development.
  5. user default exec root is not pymake default exec root.

Command-line


Microsoft Windows [版本 10.0.19042.867]
(c) 2020 Microsoft Corporation. 保留所有权利。

C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake --help
PyMake 8.0.

Usage:
  pymake8.py  source
  pymake8.py  source file [ <source-path-file> ]
  pymake8.py  source root [ <source-root-path> ]
  pymake8.py  source config [ --add ] [ <config-file-name> ]
  pymake8.py  source config [ --del ] [ <config-file-name> ]
  pymake8.py  source config [ --mod ] [ <config-file-name> ] [<new-config-file-name>]
  pymake8.py  source config [ --switch ] [ <config-file-name> ]
  pymake8.py  source config [ --edit ] [ <config-file-name> ]
  pymake8.py  source config [ --restore ]
  pymake8.py  source config [ --show ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  set path ( --add | --del | --mod ) <name> [ <value> ]
  pymake8.py  set env [ path ] ( --add | --del | --mod ) <group> <name> [ <value> ]
  pymake8.py  set cmd (--add | --del | --mod ) <name> [ <values> ... ]
  pymake8.py  set cur env <name>
  pymake8.py  list [ path | env | cmd ] [<name>] [-r | --raw] [-a | --all]
  pymake8.py  env [<name>] [-p | --path] [-v | --var] [-r | --raw] [-a | --all]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  clean [ here | hh ] [ there | tt ] [ default | dd ]
  pymake8.py  export [ here | hh ] [ there | tt ] [ default | dd ] [ <env-name> ] [ to <file-name> ]
  pymake8.py  type [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ] [ to <file-name> ]
  pymake8.py  exec [ here | hh ] [ there | tt ] [ default | dd ] [ <command-names> ... ]
  pymake8.py  cc [ here | hh ] [ there | tt ] [ default | dd ] [ <command-names> ... ]
  pymake8.py  use <env-name> type [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ]  [ to <file-name> ]
  pymake8.py  use <env-name> exec [ here | hh ] [ there | tt ] [ default | dd ] [ <command-names> ... ]
  pymake8.py  use <env-name> cc [ here | hh ] [ there | tt ] [ default | dd ] [ <command-names> ... ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  set current env <name>
  pymake8.py  set default env <name>
  pymake8.py  show [ path | env | cmd ] [<name>] [-r | --raw] [-a | --all]
  pymake8.py  environ [<name>] [-p | --path] [-v | --var] [-r | --raw] [-a | --all]
  pymake8.py  see [ <cmd-name> ] [ use <env-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
  pymake8.py  ss [ <cmd-name> ] [ use <env-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
  pymake8.py  cmd [ <cmd-name> ] [ use <env-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
  pymake8.py  use <env-name> see [ <cmd-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
  pymake8.py  use <env-name> ss [ <cmd-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
  pymake8.py  use <env-name> cmd [ <cmd-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  have path <name> [-r | --raw]
  pymake8.py  have env [ path ] [ <group> ] [ <name> ] [-r | --raw]
  pymake8.py  have cmd <name> [-r | --raw]
  pymake8.py  has path <name> [-r | --raw]
  pymake8.py  has env [ path ] [ <group> ] [ <name> ] [-r | --raw]
  pymake8.py  has cmd <name> [-r | --raw]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  get cur env
  pymake8.py  get current env
  pymake8.py  get default env
  pymake8.py  get env
  pymake8.py  get env ( cur | current | default )
  pymake8.py  -------------------------------------------------------------
  pymake8.py  program
  pymake8.py  program root
  pymake8.py  program file
  pymake8.py  program configure
  pymake8.py  program configure root
  pymake8.py  program configure file
  pymake8.py  program configure [ --edit ]
  pymake8.py  initialize
  pymake8.py  debug
  pymake8.py  debug [ open | close ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  get all
  pymake8.py  get all ( info | information )
  pymake8.py  get all ( stat | status )
  pymake8.py  get all settings [ path | env | cmd ] [<name>] [-r | --raw] [-a | --all]
  pymake8.py  get all settings [ -l | --local ] [ -c | --custom ] [ -s | --system ] [ --current ] [ --envname=<env-name> ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  set exec root
  pymake8.py  set exec root [ to <work-root-path> ]
  pymake8.py  set exec root to [ here | hh ] [ there | tt ] [ default | dd ]
  pymake8.py  set [ default | dd ] exec root
  pymake8.py  set [ there | tt ] exec root
  pymake8.py  set [ here | hh ] exec root
  pymake8.py  set [ there | tt ] exec root [ to <work-root-path> ]
  pymake8.py  set [ current | starting ] exec root [ to <work-root-path> ]
  pymake8.py  set [ current | starting ] exec root to [ here | hh ] [ there | tt ] [ default | dd ]
  pymake8.py  get exec root
  pymake8.py  get exec root [ here | hh ] [ there | tt ] [ default | dd ]
  pymake8.py  get [ here | hh ] [ there | tt ] [ default | dd ] exec root
  pymake8.py  get [ default | dd ] exec root
  pymake8.py  get [ there | tt ] exec root
  pymake8.py  get [ here | hh ] exec root
  pymake8.py  get [ current | starting ] exec root [ --position | -p ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  port
  pymake8.py  port root [ <source-config-root> ] [ to <target-config-root> ]
  pymake8.py  port config [ <source-config-file> ] [ to <target-config-file> ]
  pymake8.py  port file [ <source-path-file> ] [ to <target-path-file> ]
  pymake8.py  port root ( --source | --target ) <config-root>
  pymake8.py  port config ( --source | --target ) <config-file>
  pymake8.py  port file ( --source | --target ) <path-file>
  pymake8.py  port reset
  pymake8.py  translate
  pymake8.py  translate ( path | env | cmd )
  pymake8.py  translate ( path | env | cmd ) <key-name> [ to <target-key-name> ] [ -f | --force ]
  pymake8.py  translate ( path | env | cmd ) [ -a | --all ] [ -f | --force ]
  pymake8.py  translate path-env-cmd [ -a | --all ] [ -f | --force ]
  pymake8.py  translate all [ -a | --all ] [ -f | --force ]
  pymake8.py  translate section
  pymake8.py  translate section <section-name> [ to <target-section-name> ] [ -f | --force ]
  pymake8.py  translate section [ -a | --all ] [ -f | --force ]
  pymake8.py  translate config [ -f | --force ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  import cmd [ here | hh ] [ there | tt ] [ default | dd ] [ <script-file> ] [ to <command-name> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --filter=<name-filter> ... ]
  pymake8.py  outport cmd [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  use <env-name> outport cmd [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  backup [ here | hh ] [ there | tt ] [ default | dd ] [ <zip-file-name> ]
  pymake8.py  recovery [ here | hh ] [ there | tt ] [ default | dd ] [ <zip-file-name> ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  system
  pymake8.py  system [ stat | status ]
  pymake8.py  system [ info | information ]
  pymake8.py  system path [ --add | --del ] [ <value> ]
  pymake8.py  system var [ --add | --del ] [ <key> ] [ <value> ]
  pymake8.py  system env [ -r | --raw ]
  pymake8.py  system exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  system use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  system execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  system use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  system ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  system use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  local
  pymake8.py  local [ open | close ]
  pymake8.py  local [ stat | status ]
  pymake8.py  local [ info | information ]
  pymake8.py  local edit
  pymake8.py  local path [ --add | --del ] [ <value> ]
  pymake8.py  local var [ --add | --del ] [ <key> ] [ <value> ]
  pymake8.py  local env [ -r | --raw ]
  pymake8.py  local export [ here | hh ] [ there | tt ] [ default | dd ] [ to <file-name> ]
  pymake8.py  local exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  local use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  local execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  local use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  local ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  local use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  custom
  pymake8.py  custom [ open | close ]
  pymake8.py  custom [ stat | status ]
  pymake8.py  custom [ info | information ]
  pymake8.py  custom edit
  pymake8.py  custom path [ --add | --del ] [ <value> ]
  pymake8.py  custom var [ --add | --del ] [ <key> ] [ <value> ]
  pymake8.py  custom env [ -r | --raw ]
  pymake8.py  custom export [ here | hh ] [ there | tt ] [ default | dd ] [ to <file-name> ]
  pymake8.py  custom exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  custom use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  custom execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  custom use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  custom ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  custom use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  powershell
  pymake8.py  powershell [ info | information ]
  pymake8.py  powershell [ stat | status ]
  pymake8.py  powershell clean [ here | hh ] [ there | tt ] [ default | dd ]
  pymake8.py  powershell export [ here | hh ] [ there | tt ] [ default | dd ] [ <env-name> ] [ to <file-name> ]
  pymake8.py  powershell type [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ] [ to <file-name> ]
  pymake8.py  powershell use <env-name> type [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ]  [ to <file-name> ]
  pymake8.py  powershell exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  powershell use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  powershell execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  powershell use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  powershell ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  powershell use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  python
  pymake8.py  python [ info | information ]
  pymake8.py  python [ stat | status ]
  pymake8.py  python clean [ here | hh ] [ there | tt ] [ default | dd ]
  pymake8.py  python type [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ] [ to <file-name> ]
  pymake8.py  python use <env-name> type [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ]  [ to <file-name> ]
  pymake8.py  python exec-with-params [ here | hh ] [ there | tt ] [ default | dd ][ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  python use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  python execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  python use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  python ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  python use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  language
  pymake8.py  language [ info | information ]
  pymake8.py  language [ stat | status ]
  pymake8.py  language clean [ here | hh ] [ there | tt ] [ default | dd ] [ --suffix=<.suffix-name> ]
  pymake8.py  language type [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  language use <env-name> type [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ]  [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  language exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  language use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  language execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  language use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  language ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  language use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  sys
  pymake8.py  sys [ stat | status ]
  pymake8.py  sys [ info | information ]
  pymake8.py  sys path [ --add | --del ] [ <value> ]
  pymake8.py  sys var [ --add | --del ] [ <key> ] [ <value> ]
  pymake8.py  sys env [ -r | --raw ]
  pymake8.py  sys exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  sys use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  sys execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  sys use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  sys ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  sys use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  export2 [ powershell ] [ here | hh ] [ there | tt ] [ default | dd ] [ <env-name> ] [ to <file-name> ] [ -c | --custom ] [ -l | --local ] [ -s | --system ]
  pymake8.py  type2 [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  use <env-name> type2 [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  open [ <path-name> ... ] [ -c | --custom ] [ --current ] [ --envname=<env-name> ] [ -i | --ignorecase ]
  pymake8.py  use <env-name> open [ <path-name> ... ] [ -i | --ignorecase ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  check path [ <item-name> ] [ --item=<item-name> ] [ -a | --all ]
  pymake8.py  check cmd [ <item-name> ] [ --item=<item-name> ] [ -a | --all ]
  pymake8.py  check env [ <env-name> ] [ --current ] [ --envname=<env-name> ] [ -a | --all ] [ -s | --system ] [ -l | --local ] [ -c | --custom ]
  pymake8.py  check [ vc ] [ env ] [ <env-name> ] [ --current ] [ --envname=<env-name> ] [ -a | --all ] [ -s | --system ] [ -l | --local ] [ -c | --custom ]
  pymake8.py  check [ env ] [ vc ] [ <env-name> ] [ --current ] [ --envname=<env-name> ] [ -a | --all ] [ -s | --system ] [ -l | --local ] [ -c | --custom ]
  pymake8.py  chk path [ <item-name> ] [ --item=<item-name> ] [ -a | --all ]
  pymake8.py  chk cmd [ <item-name> ] [ --item=<item-name> ] [ -a | --all ]
  pymake8.py  chk env [ <env-name> ] [ --current ] [ --envname=<env-name> ] [ -a | --all ] [ -s | --system ] [ -l | --local ] [ -c | --custom ]
  pymake8.py  chk [ vc ] [ env ] [ <env-name> ] [ --current ] [ --envname=<env-name> ] [ -a | --all ] [ -s | --system ] [ -l | --local ] [ -c | --custom ]
  pymake8.py  chk [ env ] [ vc ] [ <env-name> ] [ --current ] [ --envname=<env-name> ] [ -a | --all ] [ -s | --system ] [ -l | --local ] [ -c | --custom ]
  pymake8.py  vc check env [ <env-name> ] [ --current ] [ --envname=<env-name> ] [ -a | --all ] [ -s | --system ] [ -l | --local ] [ -c | --custom ]
  pymake8.py  vc env check [ <env-name> ] [ --current ] [ --envname=<env-name> ] [ -a | --all ] [ -s | --system ] [ -l | --local ] [ -c | --custom ]
  pymake8.py  vc chk env [ <env-name> ] [ --current ] [ --envname=<env-name> ] [ -a | --all ] [ -s | --system ] [ -l | --local ] [ -c | --custom ]
  pymake8.py  vc env chk [ <env-name> ] [ --current ] [ --envname=<env-name> ] [ -a | --all ] [ -s | --system ] [ -l | --local ] [ -c | --custom ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  vc
  pymake8.py  vc [ info | information ]
  pymake8.py  vc [ stat | status ]
  pymake8.py  vc settings [ <env-name> ] [ -a | --all ]
  pymake8.py  vc init [ <env-name> ] [ -a | --all ]
  pymake8.py  vc deinit [ <env-name> ]
  pymake8.py  vc env [ <env-name> ]
  pymake8.py  vc clean [ here | hh ] [ there | tt ] [ default | dd ]
  pymake8.py  vc type [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ] [ to <file-name> ]
  pymake8.py  vc use <env-name> type [ here | hh ] [ there | tt ] [ default | dd ] [ <cmd-name> ]  [ to <file-name> ]
  pymake8.py  vc export [ here | hh ] [ there | tt ] [ default | dd ] [ <env-name> ] [ to <file-name> ]
  pymake8.py  vc exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc powershell exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc powershell use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc powershell execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc powershell use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc powershell ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc powershell use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc python exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc python use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc python execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc python use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc python ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc python use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  vc language exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  vc language use <env-name> exec-with-params [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  vc language execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  vc language use <env-name> execvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  vc language ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  vc language use <env-name> ccvp [ here | hh ] [ there | tt ] [ default | dd ] [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
  pymake8.py  vc export2 [ powershell ] [ here | hh ] [ there | tt ] [ default | dd ] [ <env-name> ] [ to <file-name> ] [ -c | --custom ] [ -l | --local ] [ -s | --system ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  default clean
  pymake8.py  default export [ <env-name> ] [ to <file-name> ]
  pymake8.py  default type [ <cmd-name> ]  [ to <file-name> ]
  pymake8.py  default use <env-name> exec [ <command-names> ... ]
  pymake8.py  default exec [ <command-names> ... ]
  pymake8.py  default use <env-name> cc [ <command-names> ... ]
  pymake8.py  default cc [ <command-names> ... ]
  pymake8.py  dd clean
  pymake8.py  dd export [ <env-name> ] [ to <file-name> ]
  pymake8.py  dd type [ <cmd-name> ]  [ to <file-name> ]
  pymake8.py  dd use <env-name> exec [ <command-names> ... ]
  pymake8.py  dd exec [ <command-names> ... ]
  pymake8.py  dd use <env-name> cc [ <command-names> ... ]
  pymake8.py  dd cc [ <command-names> ... ]
  pymake8.py  default exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  default use <env-name> exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  dd exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  dd use <env-name> exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  default execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  default use <env-name> execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  dd execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  dd use <env-name> execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  default ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  default use <env-name> ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  dd ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  dd use <env-name> ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  default import cmd [ <script-file> ] [ to <command-name> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --filter=<name-filter> ... ]
  pymake8.py  dd import cmd [ <script-file> ] [ to <command-name> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --filter=<name-filter> ... ]
  pymake8.py  default outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  dd outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  default use <env-name> outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  dd use <env-name> outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  default backup [ <zip-file-name> ]
  pymake8.py  dd backup [ <zip-file-name> ]
  pymake8.py  default recovery [ <zip-file-name> ]
  pymake8.py  dd recovery [ <zip-file-name> ]
  pymake8.py  default export2 [ powershell ] [ <env-name> ] [ to <file-name> ] [ -c | --custom ] [ -l | --local ] [ -s | --system ]
  pymake8.py  default type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  default use <env-name> type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  dd export2 [ powershell ] [ <env-name> ] [ to <file-name> ] [ -c | --custom ] [ -l | --local ] [ -s | --system ]
  pymake8.py  dd type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  dd use <env-name> type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  there clean
  pymake8.py  there export [ <env-name> ] [ to <file-name> ]
  pymake8.py  there type [ <cmd-name> ]  [ to <file-name> ]
  pymake8.py  there use <env-name> exec [ <command-names> ... ]
  pymake8.py  there exec [ <command-names> ... ]
  pymake8.py  there use <env-name> cc [ <command-names> ... ]
  pymake8.py  there cc [ <command-names> ... ]
  pymake8.py  tt clean
  pymake8.py  tt export [ <env-name> ] [ to <file-name> ]
  pymake8.py  tt type [ <cmd-name> ]  [ to <file-name> ]
  pymake8.py  tt use <env-name> exec [ <command-names> ... ]
  pymake8.py  tt exec [ <command-names> ... ]
  pymake8.py  tt use <env-name> cc [ <command-names> ... ]
  pymake8.py  tt cc [ <command-names> ... ]
  pymake8.py  there exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  there use <env-name> exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  tt exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  tt use <env-name> exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  there execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  there use <env-name> execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  tt execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  tt use <env-name> execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  there ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  there use <env-name> ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  tt ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  tt use <env-name> ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  there import cmd [ <script-file> ] [ to <command-name> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --filter=<name-filter> ... ]
  pymake8.py  tt import cmd [ <script-file> ] [ to <command-name> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --filter=<name-filter> ... ]
  pymake8.py  there outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  tt outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  there use <env-name> outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  tt use <env-name> outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  there backup [ <zip-file-name> ]
  pymake8.py  tt backup [ <zip-file-name> ]
  pymake8.py  there recovery [ <zip-file-name> ]
  pymake8.py  tt recovery [ <zip-file-name> ]
  pymake8.py  there export2 [ powershell ] [ <env-name> ] [ to <file-name> ] [ -c | --custom ] [ -l | --local ] [ -s | --system ]
  pymake8.py  there type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  there use <env-name> type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  tt export2 [ powershell ] [ <env-name> ] [ to <file-name> ] [ -c | --custom ] [ -l | --local ] [ -s | --system ]
  pymake8.py  tt type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  tt use <env-name> type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  here clean
  pymake8.py  here export [ <env-name> ] [ to <file-name> ]
  pymake8.py  here type [ <cmd-name> ]  [ to <file-name> ]
  pymake8.py  here use <env-name> exec [ <command-names> ... ]
  pymake8.py  here exec [ <command-names> ... ]
  pymake8.py  here use <env-name> cc [ <command-names> ... ]
  pymake8.py  here cc [ <command-names> ... ]
  pymake8.py  hh clean
  pymake8.py  hh export [ <env-name> ] [ to <file-name> ]
  pymake8.py  hh type [ <cmd-name> ]  [ to <file-name> ]
  pymake8.py  hh use <env-name> exec [ <command-names> ... ]
  pymake8.py  hh exec [ <command-names> ... ]
  pymake8.py  hh use <env-name> cc [ <command-names> ... ]
  pymake8.py  hh cc [ <command-names> ... ]
  pymake8.py  here execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  here use <env-name> execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  hh execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  hh use <env-name> execvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  here ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  here use <env-name> ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  hh ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  hh use <env-name> ccvp [ <command-name> ] [ <command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  here import cmd [ <script-file> ] [ to <command-name> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --filter=<name-filter> ... ]
  pymake8.py  hh import cmd [ <script-file> ] [ to <command-name> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --filter=<name-filter> ... ]
  pymake8.py  here outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  hh outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  here use <env-name> outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  hh use <env-name> outport cmd [ <command-name> ] [ to <script-file> ] [ -r | --raw ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
  pymake8.py  here backup [ <zip-file-name> ]
  pymake8.py  hh backup [ <zip-file-name> ]
  pymake8.py  here recovery [ <zip-file-name> ]
  pymake8.py  hh recovery [ <zip-file-name> ]
  pymake8.py  here exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  here use <env-name> exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  hh exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  hh use <env-name> exec-with-params [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
  pymake8.py  here export2 [ powershell ] [ <env-name> ] [ to <file-name> ] [ -c | --custom ] [ -l | --local ] [ -s | --system ]
  pymake8.py  here type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  here use <env-name> type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  hh export2 [ powershell ] [ <env-name> ] [ to <file-name> ] [ -c | --custom ] [ -l | --local ] [ -s | --system ]
  pymake8.py  hh type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  hh use <env-name> type2 [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ] [ --samename ] [ -a | --all ]
  pymake8.py  -------------------------------------------------------------
  pymake8.py  (-h | --help)
  pymake8.py  --version

Command:
  source            switch to another source file
  source root       config root directory
  source config     config source conf file
  set path          path assemblage
  set env           set env variable
  set cmd           set cmd stream
  export            output private env variable and paths to a bat file or sh file
  type              output command to a bat file or sh file
  see               check command stream
  ss                check command stream
  cmd               check command stream
  list              list config values, show command also too.
  set cur env       set default env, set current env.
  use               use selected env exec commands
  default           at default ( pymake default exec root ) do exec commands e.g. [default]
  dd                at default ( pymake default exec root ) do exec commands e.g. [default]
  there             at there (user default exec root) do exec commands e.g.
  tt                at there (user default exec root) do exec commands e.g.
  here              at here do exec commands e.g.
  hh                at here do exec commands e.g.
  exec              exec commands list.
  cc                exec commands list.
  have              check env or path or cmd item whether user has configured.
  has               check env or path or cmd item whether user has configured.
  clean             clean *_effect.sh *_unset.sh *_exec.sh, or .bat.
  program           pymake.py program information.
  get               lots of important information about pymake.py.
  initialize        if program crashed, user can use this command to reset.
  port              port from source to target .json file, configure source root and config file.
  translate         translate section from source to target, and other section.
  exec-with-params  exec a command with params, it is also execvp and ccvp.
  backup            backup all env .json to a zip file.
  recovery          recovery all env .json from a zip file.
  import            import user path or env or cmd to env .json file. example, import cmd [ <script-file>: x.bat x.cmd x.sh x.ps1 x.py x.java... ]
  custom            custom environment is helpping for calling large dimentions of scripts in computer, manually in console. defined in sourceroot. [ default: close ]
  powershell        environ for powershell, and to execute in powershell. [cross]
  python            list python information, and execute python script.
  outport           outport user path or env or cmd to script file. example, outport cmd [ <command-name> ] [ to <script-file>: ... ]
  language          find script file automatically and execute it. example, language ccvp java xxx.java ...
  local             using pymake local expanding environ, read only.
  system            using system environ, read only.
  export2           output private environ and custom environ to a bat file or sh file, a powerfull function from export, support powershell also. [default:current, env]
  type2             output command to a bat file or sh file, user can appoint file suffix and encoding.
  open              open path by stored name in path-assemblage. support .../${path-name}/..., support search in env, support two or more path.
  vc                start visual studio environment directly, easy to use. [system, local, custom, .json, vc]

Options:
  -h --help     Show this screen.
  --version     Show version.
  --add
  --del
  --mod         add or delete or modify a config or path
  --switch      switch to another source
  --show        display source config files
  --restore     reset to source config file pymake.json.
  -r, --raw     expand editing config values

  --encoding=<encoding-name>    script file encoding, support utf8, gbk, ansi, ... and so on. [default:utf8]
  --filter=<name-filter> ...    filter file name postfix, separated by |. example: .bat | .sh | .ps1 | .py | .java.

C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>

Custom Environ Config Files

custom environ config files .ini.

custom environ

Environment


Microsoft Windows [版本 10.0.19042.867]
(c) 2020 Microsoft Corporation. 保留所有权利。

C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake --version
pymake8.py v8.0

C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake system
system env
path+:
  C:\windows\system32
  C:\windows
  C:\windows\System32\Wbem
  C:\windows\System32\WindowsPowerShell\v1.0\
  C:\windows\System32\OpenSSH\
  C:\Program Files\TortoiseGit\bin
  C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\
  C:\Program Files\Git\cmd
  C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps

variable:
  ALLUSERSPROFILE                C:\ProgramData
  APPDATA                        C:\Users\Administrator\AppData\Roaming
  COMMONPROGRAMFILES             C:\Program Files (x86)\Common Files
  COMMONPROGRAMFILES(X86)        C:\Program Files (x86)\Common Files
  COMMONPROGRAMW6432             C:\Program Files\Common Files
  COMPUTERNAME                   WIN-6FQQ4ARBR2A
  COMSPEC                        C:\windows\system32\cmd.exe
  DRIVERDATA                     C:\Windows\System32\Drivers\DriverData
  FPS_BROWSER_APP_PROFILE_STRING Internet Explorer
  FPS_BROWSER_USER_PROFILE_STRING Default
  HOMEDRIVE                      C:
  HOMEPATH                       \Users\Administrator
  LOCALAPPDATA                   C:\Users\Administrator\AppData\Local
  LOGONSERVER                    \\WIN-6FQQ4ARBR2A
  NUMBER_OF_PROCESSORS           4
  ONEDRIVE                       C:\Users\Administrator\OneDrive
  OS                             Windows_NT
  PATHEXT                        .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
  PROCESSOR_ARCHITECTURE         x86
  PROCESSOR_ARCHITEW6432         AMD64
  PROCESSOR_IDENTIFIER           Intel64 Family 6 Model 78 Stepping 3, GenuineIntel
  PROCESSOR_LEVEL                6
  PROCESSOR_REVISION             4e03
  PROGRAMDATA                    C:\ProgramData
  PROGRAMFILES                   C:\Program Files (x86)
  PROGRAMFILES(X86)              C:\Program Files (x86)
  PROGRAMW6432                   C:\Program Files
  PROMPT                         $P$G
  PSMODULEPATH                   C:\Program Files\WindowsPowerShell\Modules;C:\windows\system32\WindowsPowerShell\v1.0\Modules
  PUBLIC                         C:\Users\Public
  PYPROGRAMNAME                  pymake8.py
  PYPROGRAMPATH                  C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\
  PYPROGRAMPATHNAME              C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\pymake8.py
  SESSIONNAME                    Console
  SYSTEMDRIVE                    C:
  SYSTEMROOT                     C:\windows
  TEMP                           C:\Users\Administrator\AppData\Local\Temp
  TMP                            C:\Users\Administrator\AppData\Local\Temp
  USERDOMAIN                     WIN-6FQQ4ARBR2A
  USERDOMAIN_ROAMINGPROFILE      WIN-6FQQ4ARBR2A
  USERNAME                       Administrator
  USERPROFILE                    C:\Users\Administrator
  VS140COMNTOOLS                 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\
  WINDIR                         C:\windows

C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake local
local env: opened.
path+:
  C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake
  C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource
  C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
  C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
  C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell
  C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
variable:
  PYMAKEDEFAULTSOURCEROOT        C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource
  PYMAKEDEFAULTSOURCECONFIG      pymake.json
  PYMAKESOURCEFILE               C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\pymake7-win-lenovo.json
  PYMAKESOURCEROOT               C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource
  PYMAKESOURCECONFIG             pymake7-win-lenovo.json
  PYMAKEDEFAULTWORKROOT          C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
  PYMAKETHEREWORKROOT            C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
  PYMAKEHEREWORKROOT             C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell
  PYMAKEWORKROOT                 C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
  PYMAKEPROGRAM                  C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\pymake8.py
  PYMAKEPROGRAMROOT              C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake
  PYMAKEPROGRAMFILE              pymake8.py
  PYMAKEPROGRAMCONFIGURE         C:\Users\Administrator\.pymake\pymake.ini
  PYMAKEPROGRAMCONFIGUREROOT     C:\Users\Administrator\.pymake
  PYMAKEPROGRAMCONFIGUREFILE     pymake.ini
  PYMAKEINSTALLROOT              C:\windows

C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake custom
custom env: opened.
path+:
  C:/Users/Administrator/AppData/Local/Programs/Python/Python37-32;C:/Users/Administrator/AppData/Local/Programs/Python/Python37-32/Scripts
  C:/Users/Administrator/Develop/b0-toolkits/a0-compiler/PyMake/test;C:/Users/Administrator/Develop/b0-toolkits/a0-compiler/PyMake/test/带 空格的路径
  C:/Users/Administrator/Develop/b0-toolkits/a0-compiler/PyMake/demo
  C:/Users/Administrator/Develop/b0-toolkits/a0-compiler/PyMake/tools;C:/Users/Administrator/Develop/b0-toolkits/a0-compiler/PyMake/tools/filetransporter
  C:/Users/Administrator/Develop/b0-toolkits/a0-compiler/PyMake/UserSource/UserShell
  C:/Users/Administrator/Develop/b0-toolkits/a0-compiler/PyMake/UserSource/WinShell
  C:/Users/Administrator/Develop/b0-toolkits/a0-compiler/PyMake/UserSource/MyShell
  C:/Users/Administrator/Develop/b0-toolkits/winCompilers/CMAKE/cmake-3.18.2-win64-x64/bin
variable:
  PYMAKEAUTHOR                   T.D.R.

C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake env android.mobile -r
env android.mobile
path+:
  C:/Users/Administrator/Develop/b0-toolkits/winLibraries/Qt/5.9.2/android_armv7/bin
  C:/Users/Administrator/Develop/b0-toolkits/winLibraries/Qt/Tools/mingw530_32/bin
  C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/Java/jdk1.8.0_131/bin
  C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows
  C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows/platform-tools
  C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows/build-tools
  C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows/tools
  C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/apache-ant-1.10.3/bin
  C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin
variable:
  makex                          mingw32-make
  ANDROID_API_VERSION            android-23
  ANDROID_HOME                   C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows
  ANDROID_SDK_ROOT               C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows
  ANDROID_NDK_PLATFORM           android-23
  ANDROID_NDK_ROOT               C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/android-ndk-r13b
  ANDROID_NDK_HOST               windows-x86_64
  ANDROID_NDK_TOOLCHAIN_PREFIX   arm-linux-androideabi
  ANDROID_NDK_TOOLCHAIN_VERSION  4.9
  ANDROID_NDK_TOOLS_PREFIX       arm-linux-androideabi
  NDK_TOOLCHAIN_PATH             C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin
  NDK_TOOLS_PREFIX               arm-linux-androideabi
  CMAKEGENERATOR                 MinGW Makefiles
  CMAKE_SYSTEM_NAME              Android
  CMAKE_C_COMPILER               arm-linux-androideabi-gcc
  CMAKE_CXX_COMPILER             arm-linux-androideabi-g++
  CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER
  CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY
  CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY
  QTDIR                          C:/Users/Administrator/Develop/b0-toolkits/winLibraries/Qt/5.9.2/android_armv7
  QTSPEC                         -spec android-g++
  QTCONFIG
  JAVA_HOME                      C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/Java/jdk1.8.0_131
  CLASSPATH                      .:C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/Java/jdk1.8.0_131/lib/dt.jar:C:/Users/Administrator/Develop/b0-toolkits/winAndroidLibraries/Java/jdk1.8.0_131/lib/tools.jar
  PYMAKE_MYNAME                  T.D.R
  a_special_var_const            hello world
  QTVERSION                      5.9.2
  QKIT                           ANDROID
  QSYS                           Android

C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake env current -r
env msvc2015
path+:
  C:/Users/Administrator/Develop/b0-toolkits/winLibraries/Qt/5.9.2/msvc2015/bin
variable:
  makex                          nmake
  CMAKEGENERATOR                 NMake Makefiles
  vcvarsall                      C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat
  vcvarsallparam                 amd64_x86
  QtMsBuild                      C:/Users/Administrator/AppData/Local/QtMsBuild
  QTVERSION                      5.9.2
  QTDIR                          C:/Users/Administrator/Develop/b0-toolkits/winLibraries/Qt/5.9.2/msvc2015
  QTSPEC                         -spec win32-msvc
  QTCONFIG
  QKIT                           WIN32
  QSYS                           MSVC

C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake vc env current
source file: C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\pymake7-win-lenovo.json
env msvc2015:
  "vcvarsall": "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat"
  "vcvarsallparam": "amd64_x86"
env msvc2015
path+:
  C:/Users/Administrator/Develop/b0-toolkits/winLibraries/Qt/5.9.2/msvc2015/bin
variable:
  makex                          nmake
  CMAKEGENERATOR                 NMake Makefiles
  vcvarsall                      C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/vcvarsall.bat
  vcvarsallparam                 amd64_x86
  QtMsBuild                      C:/Users/Administrator/AppData/Local/QtMsBuild
  QTVERSION                      5.9.2
  QTDIR                          C:/Users/Administrator/Develop/b0-toolkits/winLibraries/Qt/5.9.2/msvc2015
  QTSPEC                         -spec win32-msvc
  QTCONFIG
  QKIT                           WIN32
  QSYS                           MSVC
vcenv msvc2015
path+:
  C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\
  C:\Program Files (x86)\Windows Kits\10\bin\x86
  C:\Program Files (x86)\Windows Kits\10\bin\x64
  C:\windows\Microsoft.NET\Framework64\
  C:\windows\Microsoft.NET\Framework64\v4.0.30319
  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64
  C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\amd64_x86
  C:\Program Files (x86)\MSBuild\14.0\bin\amd64
variable:
  COMMANDPROMPTTYPE              Cross
  CURDIR                         C:\Program Files (x86)\Microsoft Visual C++ Build Tools\
  CURRENTDIR                     C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
  FRAMEWORKDIR                   C:\windows\Microsoft.NET\Framework64
  FRAMEWORKDIR64                 C:\windows\Microsoft.NET\Framework64
  FRAMEWORKVERSION               v4.0.30319
  FRAMEWORKVERSION64             v4.0.30319
  INCLUDE                        C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\shared;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\um;C:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\winrt;
  LIB                            C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB;C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x86;C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\um\x86;
  LIBPATH                        C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB;C:\windows\Microsoft.NET\Framework64\v4.0.30319;C:\windows\Microsoft.NET\Framework64\;C:\Program Files (x86)\Windows Kits\10\UnionMetadata;C:\Program Files (x86)\Windows Kits\10\References;C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\1.0.0.0;C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.FoundationContract\1.0.0.0;C:\Program Files (x86)\Windows Kits\10\References\indows.Networking.Connectivity.WwanContract\1.0.0.0;\Microsoft.VCLibs\14.0\References\CommonConfiguration\neutral;
  PLATFORM                       X86
  PREFERREDTOOLARCHITECTURE      x64
  UCRTCONTENTROOT                C:\Program Files (x86)\Windows Kits\10\
  UCRTVERSION                    10.0.10240.0
  UNIVERSALCRTSDKDIR             C:\Program Files (x86)\Windows Kits\10\
  VCINSTALLDIR                   C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\
  VCTARGETSPATH                  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140\
  WINDOWSLIBPATH                 C:\Program Files (x86)\Windows Kits\10\UnionMetadata;C:\Program Files (x86)\Windows Kits\10\References;C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\1.0.0.0;C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.FoundationContract\1.0.0.0;C:\Program Files (x86)\Windows Kits\10\References\indows.Networking.Connectivity.WwanContract\1.0.0.0
  WINDOWSSDKDIR                  C:\Program Files (x86)\Windows Kits\10\
  WINDOWSSDKLIBVERSION           10.0.10240.0\
  WINDOWSSDKVERSION              10.0.10240.0\
  WINDOWSSDK_EXECUTABLEPATH_X64  C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\
  WINDOWSSDK_EXECUTABLEPATH_X86  C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\
  VISUALSTUDIOVERSION

C:\Users\Administrator\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>

Environ Structure

env struct

Command

PyMake Command

Language

PyMake Language
PyMake Language Example

Encoding

PyMake Profile Encoding

Notice

PyMake Environ Notice

User Support

User support shell module, user can install them to share their functions.

Program Shortcut Shortcut(Level 2)
pymake.py pymake pymm, mm
pymake.py pyenv
pymake.py pycmd
pymake.py pyexecvp pyccvp
pymake.py pytype
pymake.py pyexport
pymake.py pyclean
pymake.py pysystem pysys
pymake.py pylocal
pymake.py pycustom
pymake.py pypython
pymake.py pylanguage
pymake.py pypowershell.bat
pymake.py pyenv.ps1
pymake.py pyvcenv.ps1, pyvc.ps1
pymake.py pyvcenv.bat, pyvc.bat
pymake.py pyvcccvp.bat
pymake.py pyvcpowershell.bat
pymake.py pyvcpython.bat
pymake.py pyvclanguage.bat
pymake.py pyvcexport.bat
pyedit.py pyedit
pyinfo.py pyinfo
pypaths.py pypaths
pycodec.py
... install,uninstall

Detailed information

PyMake Tools

Tools Information

Wiki

PyMake Wiki

Dependencies

This program edited by python, support python 2.7 -> 3.6 (tested).You need install python, only python in path, configured.
PyMake v7 uses file encoding params in open(), then it support python3 only, I suggest you install python 3.7.
At last, it will work itself, I wish you would like it.

Python
1
https://gitee.com/drabel/PyMake.git
git@gitee.com:drabel/PyMake.git
drabel
PyMake
Multi-environ Technology(PyMake)
master

搜索帮助