- if jsrRaw != "" {
- JSR = mustParseFd(jsrRaw, "JSR")
- JSW = mustParseFd(jswRaw, "JSW")
- jsRelease()
+ JSR, JSW, err = os.Pipe()
+ if err != nil {
+ log.Fatalln(err)
+ }
+ trace(CJS, "initial fill with %d", jobs)
+ jsTokens[BMakeGoodToken] = int(jobs)
+ for ; jobs > 0; jobs-- {
+ jsReleaseNoLock(BMakeGoodToken)
+ }
+}
+
+func jsInit() {
+ jsTokens = make(map[byte]int)
+
+ makeType := os.Getenv(EnvMake)
+ var makeArgRe *regexp.Regexp
+ switch makeType {
+ case MakeTypeGmake:
+ makeArgRe = GMakeJSArgRe
+ MakeJSArg = GMakeJSArg
+ case MakeTypeBmake:
+ makeArgRe = BMakeJSArgRe
+ MakeJSArg = BMakeJSArg
+ case "":
+ fallthrough
+ case MakeTypeNone:
+ MakeFlagsName = EnvJSFd
+ makeArgRe = DMakeJSArgRe
+ MakeJSArg = DMakeJSArg
+ default:
+ log.Fatalln("unknown", EnvMake, "type")
+ }
+
+ MakeFlags = os.Getenv(MakeFlagsName)
+ jobsEnv := os.Getenv(EnvJobs)
+ if jobsEnv == "NO" {
+ // jobserver disabled, infinite jobs