Add helper makefile for including NaCl modules into Chrome Apps

# Copyright 2016 Google Inc. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

#
# This file contains some helper definitions for including the Chrome Native
# Client modules in Chrome Apps.
#
# common.mk must be included before including this file.
#

ifeq (,$(NACL_SDK_ROOT))
$(error You must specify the NACL_SDK_ROOT environment variable with a path to \
		a downloaded NaCl SDK directory)
endif

#
# Macro rule that adds some auxillary rules for depending on the specified
# Native Client module.
#
# These rules provide automatic re-building of the Native Client module when
# neccessary, copying its built binaries into the out directory.
#

define ADD-NACL-MODULE-DEPENDENCY

.PHONY: $(1)

$(1):
	+$(MAKE) --directory $(1)

clean:
	+$(MAKE) --directory $(1) clean

.PHONY: generate_out_nacl_module_$(1)

generate_out_nacl_module_$(1): $(OUT_DIR_PATH) $(1)
	@cp -pr $(1)/out/$(1)/* $(OUT_DIR_PATH)

generate_out: generate_out_nacl_module_$(1)

endef

#
# In order to mount App resources as an "httpfs" file system in NaCl module and
# support all usual file system operations with it (like listing directories
# contents), a special manifest listing all the files has to be created.
#

NACL_IO_MANIFEST_PATH := $(OUT_DIR_PATH)/nacl_io_manifest.txt

$(NACL_IO_MANIFEST_PATH): generate_out
	$(NACL_SDK_ROOT)/tools/genhttpfs.py --srcdir "$(OUT_DIR_PATH)" --recursive . > nacl_io_manifest.txt.build
	@mv nacl_io_manifest.txt.build $(NACL_IO_MANIFEST_PATH)

$(eval $(call CLEAN_RULE,nacl_io_manifest.txt.build))

all: $(NACL_IO_MANIFEST_PATH)


Add recipe for generating a topological sort

#/
# @license Apache-2.0
#
# Copyright (c) 2021 The Stdlib Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#/

# VARIABLES #

# Define the path of the executable:
LIST_PKGS_TOPOSORT ?= $(TOOLS_PKGS_DIR)/pkgs/toposort/bin/cli

# Define the command flags:
LIST_PKGS_TOPOSORT_FLAGS ?=

# Define the directory from which to search for packages:
LIST_PKGS_TOPOSORT_DIR ?= $(SRC_DIR)

# RULES #

#/
# Prints a topological sort of all package names.
#
# @param {string} [LIST_PKGS_TOPOSORT_DIR] - absolute path of the directory from which to search for packages (default: source directory)
#
# @example
# make list-pkgs-toposort
#
# @example
# make list-pkgs-toposort LIST_PKGS_TOPOSORT_DIR=$PWD/lib/node_modules/\@stdlib/utils
#/
list-pkgs-toposort: $(LIST_PKGS_TOPOSORT) $(NODE_MODULES)
	$(QUIET) NODE_PATH="$(NODE_PATH)" $(NODE) "$(LIST_PKGS_TOPOSORT)" $(LIST_PKGS_TOPOSORT_FLAGS) "$(LIST_PKGS_TOPOSORT_DIR)"

.PHONY: list-pkgs-toposort

#/
# Prints a topological sort of all standalone package names.
#
# @param {string} [LIST_PKGS_STANDALONES_TOPOSORT_DIR] - absolute path of the directory from which to search for packages (default: source directory)
#
# @example
# make list-pkgs-standalones-toposort
#
# @example
# make list-pkgs-standalones-toposort LIST_PKGS_STANDALONES_TOPOSORT_DIR=$PWD/lib/node_modules/\@stdlib/utils
#/
list-pkgs-standalones-toposort: $(LIST_PKGS_TOPOSORT) $(NODE_MODULES)
	$(QUIET) NODE_PATH="$(NODE_PATH)" $(NODE) "$(LIST_PKGS_TOPOSORT)" $(LIST_PKGS_TOPOSORT_FLAGS) "$(LIST_PKGS_STANDALONES_TOPOSORT_DIR)" | NODE_PATH="$(NODE_PATH)" $(NODE) "$(TOOLS_PKGS_DIR)/pkgs/name2standalone/bin/cli"

.PHONY: list-pkgs-standalones-toposort


$(CSRC) $(HSRC) $(SCRIPTSRC):
	test -f $(SRCDIR)/$@ && ln -s $(SRCDIR)/$@

$(DUPDIR):
	test -d $(SRCDIR)/$(DUPDIR) && mkdir $(DUPDIR) && cp -p $(SRCDIR)/$(DUPDIR)/* $(DUPDIR)

$(OBJDIR)/Makefile: Makefile
	test -d $(OBJDIR) || mkdir $(OBJDIR)
	test -f $(OBJDIR)/Makefile && mv $(OBJDIR)/Makefile $(OBJDIR)/Makefile~ ||:
	cp -p Makefile $(OBJDIR)/Makefile

coverage:
	X () { test -f $$1 || return 0; gcov $$*; }; X *.gc??

depend: Makefile $(CSRC)
	echo $(CSRC) | xargs gcc -MM $(CPREFLAGS) > depend
	tail -n `wc -l < depend` Makefile | diff - depend

Use a shell for loop instead of xargs to accomplish the desired goal of successfully doing nothing with no input. It turns out that the POSIX xargs always executes its command at least once.

$(CSRC) $(HSRC) $(SCRIPTSRC):
	test -f $(SRCDIR)/$@ && ln -s $(SRCDIR)/$@

$(DUPDIR):
	test -d $(SRCDIR)/$(DUPDIR) && mkdir $(DUPDIR) && cp -p $(SRCDIR)/$(DUPDIR)/* $(DUPDIR)

$(OBJDIR)/Makefile: Makefile
	test -d $(OBJDIR) || mkdir $(OBJDIR)
	test -f $(OBJDIR)/Makefile && mv $(OBJDIR)/Makefile $(OBJDIR)/Makefile~ ||:
	cp -p Makefile $(OBJDIR)/Makefile

coverage:
	X () { test -f $$1 || return 0; gcov $$*; }; X *.gc??

depend: Makefile $(CSRC)
	for i in $(CSRC); do gcc -MM $(CPREFLAGS) $$i; done > depend
	tail -n `wc -l < depend` Makefile | diff - depend


MCU_SERIES = m4
MCU_VARIANT = nrf52
MCU_SUB_VARIANT = nrf52840
SOFTDEV_VERSION = 6.0.0
LD_FILES += boards/nrf52840_1M_256k.ld

NRF_DEFINES += -DNRF52840_XXAA

Migrate nrf52840 target to new BLE stack.

MCU_SERIES = m4
MCU_VARIANT = nrf52
MCU_SUB_VARIANT = nrf52840
SOFTDEV_VERSION = 6.1.1
LD_FILES += boards/nrf52840_1M_256k.ld

NRF_DEFINES += -DNRF52840_XXAA


Add snapshot of ocmb/explorer for master-p10 branch

# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_config_thermal.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2019
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG

-include 00exp_common.mk

PROCEDURE=exp_config_thermal
$(eval $(call ADD_EXP_MEMORY_INCDIRS,$(PROCEDURE)))
lib$(PROCEDURE)_DEPLIBS+=exp_bulk_pwr_throttles
$(call BUILD_PROCEDURE)


# VARIABLES #

# On Mac OSX, in order to use `|` and other regular expression operators, we need to use enhanced regular expression syntax (-E); see https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man7/re_format.7.html#//apple_ref/doc/man/7/re_format.

ifeq ($(OS), Darwin)
	find_kernel_prefix := -E
else
	find_kernel_prefix :=
endif

# Define a suffix for pretty printing results as a list:
find_print_cpp_list := -exec printf '%s\n' {} \;

# Define the command flags:
FIND_CPP_FLAGS ?= \
	-type f \
	-name "$(CPP_PATTERN)" \
	-regex "$(CPP_FILTER)" \
	-not -path "$(ROOT_DIR)/.*" \
	-not -path "$(NODE_MODULES)/*" \
	-not -path "$(BUILD_DIR)/*" \
	-not -path "$(DEPS_DIR)/*" \
	-not -path "$(REPORTS_DIR)/*" \
	-not -path "$(ROOT_DIR)/**/$(BUILD_FOLDER)/*"

ifneq ($(OS), Darwin)
	FIND_CPP_FLAGS := -regextype posix-extended $(FIND_CPP_FLAGS)
endif

# Define a command for listing C++ files:
FIND_CPP_CMD ?= find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_CPP_FLAGS)

# Define the list of files:
CPP_FILES ?= $(shell $(FIND_CPP_CMD))

# TARGETS #

# List all C++ files.
#
# This target prints a list of all C++ files.

list-cpp-files:
	$(QUIET) find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_CPP_FLAGS) $(find_print_cpp_list)

.PHONY: list-cpp-files


Add empty HWPs, UTs, and makefiles needed for Axone

# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/p9a/procedures/hwp/memory/p9a_mss_volt.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG


Add a new makefile for running repo-specific tasks

# Make recipes specific for managing git-repos

check_hook := https://raw.githubusercontent.com/Alhadis/Snippets/master/shell/check-version.sh

# Installs some git-hooks to prevent hasty version-committing
git-hooks:
	@hash node 2>&- || { >&2 echo "These hooks require Node.js to run."; exit 2; }
	@curl -s $(check_hook) > .git/hooks/commit-msg
	@chmod +x .git/hooks/commit-msg


GCC_TARGET = $(shell $(CC) -dumpmachine)

ifneq ($(findstring darwin, $(GCC_TARGET)),)
    TARGET_OS = darwin
else ifneq ($(findstring mingw, $(GCC_TARGET)),)
    TARGET_OS = windows
else ifneq ($(findstring android, $(GCC_TARGET)),)
    TARGET_OS = android
else ifneq ($(findstring linux, $(GCC_TARGET)),)
    TARGET_OS = linux
endif

ifneq ($(findstring x86_64, $(GCC_TARGET)),)
    TARGET_ARCH = x64
else ifneq ($(findstring i386, $(GCC_TARGET)),)
    TARGET_ARCH = x86
else ifneq ($(findstring i486, $(GCC_TARGET)),)
    TARGET_ARCH = x86
else ifneq ($(findstring i586, $(GCC_TARGET)),)
    TARGET_ARCH = x86
else ifneq ($(findstring i686, $(GCC_TARGET)),)
    TARGET_ARCH = x86
else ifneq ($(findstring arm, $(GCC_TARGET)),)
    TARGET_ARCH = arm
endif

Fix cross compiling by using the compiler's triple

GCC_TARGET = $(CC)

ifneq ($(findstring darwin, $(GCC_TARGET)),)
    TARGET_OS = darwin
else ifneq ($(findstring mingw, $(GCC_TARGET)),)
    TARGET_OS = windows
else ifneq ($(findstring android, $(GCC_TARGET)),)
    TARGET_OS = android
else ifneq ($(findstring linux, $(GCC_TARGET)),)
    TARGET_OS = linux
endif

ifneq ($(findstring x86_64, $(GCC_TARGET)),)
    TARGET_ARCH = x64
else ifneq ($(findstring i386, $(GCC_TARGET)),)
    TARGET_ARCH = x86
else ifneq ($(findstring i486, $(GCC_TARGET)),)
    TARGET_ARCH = x86
else ifneq ($(findstring i586, $(GCC_TARGET)),)
    TARGET_ARCH = x86
else ifneq ($(findstring i686, $(GCC_TARGET)),)
    TARGET_ARCH = x86
else ifneq ($(findstring arm, $(GCC_TARGET)),)
    TARGET_ARCH = arm
endif


#
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
#
# Copyright 2015 Jyri J. Virkki. All rights reserved.
#
# THE BSD LICENSE
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# Neither the name of the  nor the names of its contributors may be
# used to endorse or promote products derived from this software without
# specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
# OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

# Even if caller specified NO_KPIC, ignore it here.
# https://www.technovelty.org/c/position-independent-code-and-x86-64-libraries.html
NO_KPIC=

include ${BUILD_ROOT}/make/defines_Linux.mk
include ${BUILD_ROOT}/make/defines_Linux_debian.mk

NSPR_INC=-I/usr/include/nspr
NSPR_LIBDIR=/usr/lib/x86_64-linux-gnu/
NSS_INC=-I/usr/include/nss
NSS_LIBDIR=/usr/lib/x86_64-linux-gnu/nss/

# Declare sbc components which need to be packaged for this platform:
SBC_PUBLISH_LDAPSDK=1


ifneq ($(TARGET_SIMULATOR),true)
ifeq ($(TARGET_ARCH),arm)

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
	mtdutils.c \
	mounts.c

LOCAL_MODULE := libmtdutils

include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := flash_image.c
LOCAL_MODULE := flash_image
LOCAL_MODULE_TAGS := eng
LOCAL_STATIC_LIBRARIES := libmtdutils
LOCAL_SHARED_LIBRARIES := libcutils libc
include $(BUILD_EXECUTABLE)

endif	# TARGET_ARCH == arm
endif	# !TARGET_SIMULATOR

Add static flash_image for recovery

ifneq ($(TARGET_SIMULATOR),true)
ifeq ($(TARGET_ARCH),arm)

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
	mtdutils.c \
	mounts.c

LOCAL_MODULE := libmtdutils

include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := flash_image.c
LOCAL_MODULE := flash_image
LOCAL_MODULE_TAGS := eng
LOCAL_STATIC_LIBRARIES := libmtdutils
LOCAL_SHARED_LIBRARIES := libcutils libc
include $(BUILD_EXECUTABLE)

include $(CLEAR_VARS)
LOCAL_SRC_FILES := flash_image.c
LOCAL_MODULE := recovery_flash_image
LOCAL_MODULE_TAGS := eng
LOCAL_STATIC_LIBRARIES := libmtdutils libcutils libc
LOCAL_MODULE_STEM := flash_image
LOCAL_FORCE_STATIC_EXECUTABLE := true
include $(BUILD_EXECUTABLE)

endif	# TARGET_ARCH == arm
endif	# !TARGET_SIMULATOR


Move support library path mappings into the support library

#
# Copyright (C) 2016 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

#
# A list of all source roots under frameworks/support.
#
FRAMEWORKS_SUPPORT_SUBDIRS := \
    annotations \
    compat \
    media-compat \
    fragment \
    core-ui \
    core-utils \
    v7/gridlayout \
    v7/cardview \
    v7/mediarouter \
    v7/palette \
    v13 \
    v17/leanback \
    design \
    percent \
    recommendation \
    transition \
    v7/preference \
    v14/preference \
    v17/preference-leanback \
    customtabs \
    exifinterface

#
# A version of FRAMEWORKS_SUPPORT_SUBDIRS that is expanded to full paths from
# the root of the tree.
#
FRAMEWORKS_SUPPORT_JAVA_SRC_DIRS := \
    $(addprefix frameworks/support/,$(FRAMEWORKS_SUPPORT_SUBDIRS)) \
    frameworks/support/graphics/drawable/animated \
    frameworks/support/graphics/drawable/static \
    frameworks/support/v7/appcompat/src \
    frameworks/support/v7/recyclerview/src

#
# A list of support library modules.
#
FRAMEWORKS_SUPPORT_JAVA_LIBRARIES := \
    $(foreach dir,$(FRAMEWORKS_SUPPORT_SUBDIRS),android-support-$(subst /,-,$(dir))) \
    android-support-v4 \
    android-support-vectordrawable \
    android-support-animatedvectordrawable \
    android-support-v7-appcompat \
    android-support-v7-recyclerview


# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scrub.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG

# Include the macros and things for MSS EXP procedures
-include 00exp_common.mk

PROCEDURE=exp_scrub
$(eval $(call ADD_EXP_MEMORY_INCDIRS,$(PROCEDURE)))
$(call BUILD_PROCEDURE)


Add missing makefiles and wrappers for Odyssey procedures

# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/ocmb/odyssey/procedures/hwp/memory/ody_scominit.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2022
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG

-include 00ody_common.mk

PROCEDURE=ody_scominit
$(call ADD_MODULE_INCDIR,$(PROCEDURE),$(MSS_ODY_INCLUDES))
$(call ADD_MODULE_INCDIR,$(PROCEDURE),$(ROOTPATH)/chips/ocmb/procedures/hwp/initfiles)
$(call BUILD_PROCEDURE)


Add empty files needed for draminit, eases HB mirroring

# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_draminit.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG


Add a platform file for building for iOS using the makefile build system

include build/platform-darwin.mk
CXX = clang++
CC = clang
SDK = 7.0
ifneq ($(filter %86 x86_64, $(ARCH)),)
SDKTYPE = iPhoneSimulator
else
SDKTYPE = iPhoneOS
endif
SDK_MIN = 5.1

SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/$(SDKTYPE).platform/Developer/SDKs/$(SDKTYPE)$(SDK).sdk
CFLAGS += -arch $(ARCH) -isysroot $(SDKROOT) -miphoneos-version-min=$(SDK_MIN)
LDFLAGS += -arch $(ARCH) -isysroot $(SDKROOT) -miphoneos-version-min=$(SDK_MIN)


Add recipes to generate Fortran test fixtures

# TARGETS #

# Run fixture runners.
#
# This target runs scripts written in Fortran to generate test fixtures.

test-fixtures-fortran:
	$(QUIET) $(FIND_FORTRAN_TESTS_FIXTURES_CMD) | grep '^[\/]\|^[a-zA-Z]:[/\]' | while read -r file; do \
		echo ""; \
		echo "Generating test fixtures: $$file"; \
		cd `dirname $$file` && \
		$(MAKE) clean && \
		$(MAKE) && \
		$(MAKE) run || exit 1; \
	done

.PHONY: test-fixtures-fortran

# Run fixture runners.
#
# This target runs a list of scripts written in Fortran to generate fixtures.

test-fixtures-fortran-files:
	$(QUIET) for file in $(FILES); do \
		echo ""; \
		echo "Generating test fixtures: $$file"; \
		cd `dirname $$file` && \
		$(MAKE) clean && \
		$(MAKE) && \
		$(MAKE) run || exit 1; \
	done

.PHONY: test-fixtures-fortran-files


# top level project rules for the msm8660_csfb project
#
LOCAL_DIR := $(GET_LOCAL_DIR)

TARGET := msm8660_surf

MODULES += app/aboot

#DEFINES += WITH_DEBUG_DCC=1
#DEFINES += WITH_DEBUG_UART=1
#DEFINES += WITH_DEBUG_FBCON=1


olautilincludedir = $(includedir)/util/
olautilinclude_HEADERS = \
    include/ola/util/Backoff.h \
    include/ola/util/SequenceNumber.h \
    include/ola/util/Utils.h

Fix the ola/util install path

olautilincludedir = $(pkgincludedir)/util/
olautilinclude_HEADERS = \
    include/ola/util/Backoff.h \
    include/ola/util/SequenceNumber.h \
    include/ola/util/Utils.h


Add partial example for android makefile

LOCAL_PATH:= $(call my-dir)

#--------------------------------------------------------
# libvrcubeworld.so
#--------------------------------------------------------
include $(CLEAR_VARS)

PROJECT_FILES := $(wildcard $(LOCAL_PATH)/../../../Src/*.cpp)
PROJECT_FILES += $(wildcard $(LOCAL_PATH)/../../../Src/sphynx/*.cpp)
PROJECT_FILES += $(wildcard $(LOCAL_PATH)/../../../Src/sphynx/g3log/*.cpp)
PROJECT_FILES += $(wildcard $(LOCAL_PATH)/../../../Src/sphynx/zstd/*.c)
PROJECT_FILES := $(filter-out $(LOCAL_PATH)/../../../Src/sphynx/g3log/crashhandler_windows.cpp, $(PROJECT_FILES))
PROJECT_FILES := $(filter-out $(LOCAL_PATH)/../../../Src/sphynx/g3log/stacktrace_windows.cpp, $(PROJECT_FILES))
PROJECT_FILES := $(PROJECT_FILES:$(LOCAL_PATH)/%=%)

LOCAL_MODULE			:= vrcubeworld
LOCAL_C_INCLUDES        := $(LOCAL_PATH)/../../../Src/sphynx
LOCAL_CFLAGS			:= -Werror
LOCAL_CPPFLAGS			:= -std=c++14 -Wno-narrowing -fexceptions -frtti
LOCAL_CFLAGS            += -DDISABLE_FATAL_SIGNALHANDLING=1
LOCAL_CFLAGS            += -DDISABLE_VECTORED_EXCEPTIONHANDLING=1
LOCAL_CFLAGS            += -DASIO_STANDALONE=1
LOCAL_CFLAGS            += -DASIO_NO_DEPRECATED=1
LOCAL_CFLAGS            += -DASIO_HEADER_ONLY=1
LOCAL_SRC_FILES			:= $(PROJECT_FILES)
LOCAL_LDLIBS			:= -llog -landroid -lGLESv3 -lEGL		# include default libraries

LOCAL_STATIC_LIBRARIES	:= systemutils android_native_app_glue
LOCAL_SHARED_LIBRARIES	:= vrapi

include $(BUILD_SHARED_LIBRARY)

$(call import-module,android/native_app_glue)
$(call import-module,VrApi/Projects/AndroidPrebuilt/jni)
$(call import-module,VrAppSupport/SystemUtils/Projects/AndroidPrebuilt/jni)


.PHONY: clean-docker
# This module downloads ubuntu installation images.
include $(SOURCE_DIR)/mirror/docker/base-images.mk

clean: clean-docker

clean-docker:
	-sudo sh -c "docker ps -a | awk '/fuel/ { print \$$1; }' | xargs --no-run-if-empty docker rm -f"
	-sudo sh -c "docker images | awk '/fuel/ { print \$$3; }' | xargs --no-run-if-empty docker rmi -f"

$(BUILD_DIR)/mirror/docker/build.done: \
		$(BUILD_DIR)/mirror/docker/base-images.done
	$(ACTION.TOUCH)

Clean docker containers and images

.PHONY: clean-docker
# This module downloads ubuntu installation images.
include $(SOURCE_DIR)/mirror/docker/base-images.mk

clean: clean-docker

clean-docker:
	-sudo sh -c "docker ps -aq | xargs --no-run-if-empty docker rm -f"
	-sudo sh -c "docker images | awk '/fuel|none/ { print \$$3; }' | xargs --no-run-if-empty docker rmi -f"

$(BUILD_DIR)/mirror/docker/build.done: \
		$(BUILD_DIR)/mirror/docker/base-images.done
	$(ACTION.TOUCH)


#
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

LOCAL_PATH := $(call my-dir)

# If we're building only unbundled apps, this is the only tool we need.
ifneq ($(TARGET_BUILD_APPS),)
include $(LOCAL_PATH)/signapk/Android.mk
else
include $(call first-makefiles-under,$(LOCAL_PATH))
endif

Use prebuilt signapk.jar for unbundled branch.

#
# Copyright (C) 2010 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

ifeq ($(TARGET_BUILD_APPS),)
LOCAL_PATH := $(call my-dir)
include $(call first-makefiles-under,$(LOCAL_PATH))
endif


# VARIABLES #

# On Mac OSX, in order to use `|` and other regular expression operators, we need to use enhanced regular expression syntax (-E); see https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man7/re_format.7.html#//apple_ref/doc/man/7/re_format.

ifeq ($(OS), Darwin)
	find_kernel_prefix := -E
else
	find_kernel_prefix :=
endif

# Define a suffix for pretty printing results as a list:
find_print_c_sources_list := -exec printf '%s\n' {} \;

# Define the command flags:
FIND_C_SOURCES_FLAGS ?= \
	-type f \
	-name "$(C_SOURCES_PATTERN)" \
	-regex "$(SOURCES_FILTER)" \
	-not -path "$(ROOT_DIR)/.*" \
	-not -path "$(NODE_MODULES)/*" \
	-not -path "$(TOOLS_DIR)/*" \
	-not -path "$(BUILD_DIR)/*" \
	-not -path "$(DEPS_DIR)/*" \
	-not -path "$(REPORTS_DIR)/*" \
	-not -path "$(ROOT_DIR)/**/$(EXAMPLES_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(TESTS_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(BENCHMARKS_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(BUILD_FOLDER)/*"

ifneq ($(OS), Darwin)
	FIND_C_SOURCES_FLAGS := -regextype posix-extended $(FIND_C_SOURCES_FLAGS)
endif

# Define a command to list source files:
FIND_C_SOURCES_CMD ?= find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_C_SOURCES_FLAGS)

# Define the list of source files:
C_SOURCES ?= $(shell $(FIND_C_SOURCES_CMD))

# TARGETS #

# List source files.
#
# This target prints a newline-delimited list of source files.

list-sources-c:
	$(QUIET) find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_C_SOURCES_FLAGS) $(find_print_c_sources_list)

.PHONY: list-sources-c


STOP Recovery: Added support for FFDC collection of CME and SGPE.

# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_sgpe.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2017,2019
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG
PROCEDURE=p9_pm_recovery_ffdc_sgpe
CME_FFDC_INC=$(ROOTPATH)/chips/p9/procedures/hwp/pm/
CME_FFDC_INC+=$(ROOTPATH)/chips/p9/procedures/hwp/lib
lib$(PROCEDURE)_DEPLIBS +=p9_pm_recovery_ffdc_base
lib$(PROCEDURE)_DEPLIBS+=p9_pm_ocb_indir_access
lib$(PROCEDURE)_DEPLIBS+=p9_pm_ocb_indir_setup_linear
lib$(PROCEDURE)_DEPLIBS+=p9_cme_sram_access
$(call ADD_MODULE_INCDIR,$(CME_FFDC_INC))
$(call BUILD_PROCEDURE)


# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/p9a/procedures/hwp/memory/p9a_mss_freq_system.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG


# List of the ChibiOS/RT Cortex-M0+ KL2x port files.
PORTSRC = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/crt0.c \
          $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/vectors.c \
          ${CHIBIOS}/os/rt/ports/ARMCMx/chcore.c \
          ${CHIBIOS}/os/rt/ports/ARMCMx/chcore_v6m.c

PORTASM = $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/chcoreasm_v6m.s

PORTINC = ${CHIBIOS}/os/ext/CMSIS/include \
          ${CHIBIOS}/os/ext/CMSIS/KINETIS \
          ${CHIBIOS}/os/common/ports/ARMCMx/devices/KL2x \
          ${CHIBIOS}/os/rt/ports/ARMCMx \
          ${CHIBIOS}/os/rt/ports/ARMCMx/compilers/GCC

PORTLD  = ${CHIBIOS}/os/common/ports/ARMCMx/compilers/GCC/ld


# PNG
PNG_VERSION := 1.4.7
PNG_URL := $(SF)/libpng/libpng-$(PNG_VERSION).tar.bz2

PKGS += png

$(TARBALLS)/libpng-$(PNG_VERSION).tar.bz2:
	$(call download,$(PNG_URL))

.sum-png: libpng-$(PNG_VERSION).tar.bz2

png: libpng-$(PNG_VERSION).tar.bz2 .sum-png
	$(UNPACK)
	$(MOVE)

.png: png
	$(RECONF)
	cd $< && $(HOSTVARS) ./configure $(HOSTCONF)
	cd $< && $(MAKE) install
	touch $@

Make png depend on zlib

# PNG
PNG_VERSION := 1.4.7
PNG_URL := $(SF)/libpng/libpng-$(PNG_VERSION).tar.bz2

PKGS += png

$(TARBALLS)/libpng-$(PNG_VERSION).tar.bz2:
	$(call download,$(PNG_URL))

.sum-png: libpng-$(PNG_VERSION).tar.bz2

png: libpng-$(PNG_VERSION).tar.bz2 .sum-png
	$(UNPACK)
	$(MOVE)

.png: png .zlib
	$(RECONF)
	cd $< && $(HOSTVARS) ./configure $(HOSTCONF)
	cd $< && $(MAKE) install
	touch $@


include plugins/artnet/Makefile.mk
include plugins/dummy/Makefile.mk
include plugins/e131/Makefile.mk
include plugins/espnet/Makefile.mk
include plugins/ftdidmx/Makefile.mk
include plugins/karate/Makefile.mk
include plugins/kinet/Makefile.mk
include plugins/milinst/Makefile.mk
include plugins/opendmx/Makefile.mk
include plugins/osc/Makefile.mk
include plugins/pathport/Makefile.mk
include plugins/renard/Makefile.mk
include plugins/sandnet/Makefile.mk
include plugins/shownet/Makefile.mk
include plugins/spi/Makefile.mk
include plugins/stageprofi/Makefile.mk
include plugins/usbdmx/Makefile.mk

if !USING_WIN32
include plugins/usbpro/Makefile.mk
include plugins/dmx4linux/Makefile.mk
include plugins/uartdmx/Makefile.mk
endif

Revert "Allow people to try compiling E1.31 on Windows if they want"

include plugins/artnet/Makefile.mk
include plugins/dummy/Makefile.mk
include plugins/espnet/Makefile.mk
include plugins/ftdidmx/Makefile.mk
include plugins/karate/Makefile.mk
include plugins/kinet/Makefile.mk
include plugins/milinst/Makefile.mk
include plugins/opendmx/Makefile.mk
include plugins/osc/Makefile.mk
include plugins/pathport/Makefile.mk
include plugins/renard/Makefile.mk
include plugins/sandnet/Makefile.mk
include plugins/shownet/Makefile.mk
include plugins/spi/Makefile.mk
include plugins/stageprofi/Makefile.mk
include plugins/usbdmx/Makefile.mk

if !USING_WIN32
include plugins/usbpro/Makefile.mk
include plugins/dmx4linux/Makefile.mk
include plugins/e131/Makefile.mk
include plugins/uartdmx/Makefile.mk
endif


PRODUCT_BRAND :=
PRODUCT_NAME :=
PRODUCT_DEVICE :=
PRODUCT_POLICY := android.policy_phone
PRODUCT_PROPERTY_OVERRIDES := \
    ro.config.notification_sound=OnTheHunt.ogg \
    ro.config.alarm_alert=Alarm_Classic.ogg

PRODUCT_PACKAGES := \
    framework-res \
    Browser \
    Contacts \
    Launcher \
    HTMLViewer \
    Phone \
    ApplicationsProvider \
    ContactsProvider \
    DownloadProvider \
    MediaProvider \
    PicoTts \
    SettingsProvider \
    TelephonyProvider \
    TtsService \
    VpnServices \
    UserDictionaryProvider \
    PackageInstaller \
    DefaultContainerService \
    Bugreport

PRODUCT_PROPERTY_OVERRIDES += \
    media.stagefright.enable-player=true \
    media.stagefright.enable-meta=true   \
    media.stagefright.enable-scan=true

Enable stagefright's http implementation by default.

PRODUCT_BRAND :=
PRODUCT_NAME :=
PRODUCT_DEVICE :=
PRODUCT_POLICY := android.policy_phone
PRODUCT_PROPERTY_OVERRIDES := \
    ro.config.notification_sound=OnTheHunt.ogg \
    ro.config.alarm_alert=Alarm_Classic.ogg

PRODUCT_PACKAGES := \
    framework-res \
    Browser \
    Contacts \
    Launcher \
    HTMLViewer \
    Phone \
    ApplicationsProvider \
    ContactsProvider \
    DownloadProvider \
    MediaProvider \
    PicoTts \
    SettingsProvider \
    TelephonyProvider \
    TtsService \
    VpnServices \
    UserDictionaryProvider \
    PackageInstaller \
    DefaultContainerService \
    Bugreport

PRODUCT_PROPERTY_OVERRIDES += \
    media.stagefright.enable-player=true \
    media.stagefright.enable-meta=true   \
    media.stagefright.enable-scan=true   \
    media.stagefright.enable-http=true


# VARIABLES #

# On Mac OSX, in order to use `|` and other regular expression operators, we need to use enhanced regular expression syntax (-E); see https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man7/re_format.7.html#//apple_ref/doc/man/7/re_format.

ifeq ($(OS), Darwin)
	find_kernel_prefix := -E
else
	find_kernel_prefix :=
endif

# Define a suffix for pretty printing results as a list:
find_print_cpp_sources_list := -exec printf '%s\n' {} \;

# Define the command flags:
FIND_CPP_SOURCES_FLAGS ?= \
	-type f \
	-name "$(CPP_SOURCES_PATTERN)" \
	-regex "$(SOURCES_FILTER)" \
	-not -path "$(ROOT_DIR)/.*" \
	-not -path "$(NODE_MODULES)/*" \
	-not -path "$(TOOLS_DIR)/*" \
	-not -path "$(BUILD_DIR)/*" \
	-not -path "$(DEPS_DIR)/*" \
	-not -path "$(REPORTS_DIR)/*" \
	-not -path "$(ROOT_DIR)/**/$(EXAMPLES_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(TESTS_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(BENCHMARKS_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(BUILD_FOLDER)/*"

ifneq ($(OS), Darwin)
	FIND_CPP_SOURCES_FLAGS := -regextype posix-extended $(FIND_CPP_SOURCES_FLAGS)
endif

# Define a command to list source files:
FIND_CPP_SOURCES_CMD ?= find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_CPP_SOURCES_FLAGS)

# Define the list of source files:
CPP_SOURCES ?= $(shell $(FIND_CPP_SOURCES_CMD))

# TARGETS #

# List source files.
#
# This target prints a newline-delimited list of source files.

list-sources-cpp:
	$(QUIET) find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_CPP_SOURCES_FLAGS) $(find_print_cpp_sources_list)

.PHONY: list-sources-cpp


Add sample makefile for use with RunMakefile.py

## @file
# Sample makefile for PREBUILD or POSTBUILD action.
#
# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
# This program and the accompanying materials
# are licensed and made available under the terms and conditions of the BSD License
# which accompanies this distribution.  The full text of the license may be found at
# http://opensource.org/licenses/bsd-license.php
#
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#

all: show
	@echo $@
genc: show
	@echo $@
genmake: show
	@echo $@
modules: show
	@echo $@
libraries: show
	@echo $@
fds: show
	@echo $@
clean: show
	@echo $@
cleanall: show
	@echo $@
cleanlib: show
	@echo $@
run: show
	@echo $@

show:
	@echo WORKSPACE........ $(WORKSPACE)
	@echo PACKAGES_PATH.... $(PACKAGES_PATH)
	@echo ACTIVE_PLATFORM.. $(ACTIVE_PLATFORM)
	@echo TARGET_ARCH...... $(TARGET_ARCH)
	@echo TOOL_CHAIN_TAG... $(TOOL_CHAIN_TAG)
	@echo CONF_DIRECTORY... $(CONF_DIRECTORY)
	@echo TARGET........... $(TARGET)
	@echo EXTRA_FLAGS...... $(EXTRA_FLAGS)


<%inherit file="../master.mak" />

LN

Lecture Notes: Agenda-y type things to keep the train on the tracks

Notes

            % for lecture in lectures:

Week ${lecture[1]} - Class
              ${lecture[3]}

            % endfor

Change template to account for double-digit week numbers. @qalthos++

<%inherit file="../master.mak" />

LN

Lecture Notes: Agenda-y type things to keep the train on the tracks

Notes

            % for lecture in lectures:

Week ${lecture[1:3]} - Class
              ${lecture[4]}

            % endfor


# VARIABLES #

# On Mac OSX, in order to use `|` and other regular expression operators, we need to use enhanced regular expression syntax (-E); see https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man7/re_format.7.html#//apple_ref/doc/man/7/re_format.

ifeq ($(OS), Darwin)
	find_kernel_prefix := -E
else
	find_kernel_prefix :=
endif

# Define a suffix for pretty printing results as a list:
find_print_cpp_benchmarks_list := -exec printf '%s\n' {} \;

# Define the command flags:
FIND_CPP_BENCHMARKS_FLAGS ?= \
	-type f \
	-name "$(CPP_BENCHMARKS_PATTERN)" \
	-path "$(ROOT_DIR)/**/$(BENCHMARKS_FOLDER)/**" \
	-regex "$(BENCHMARKS_FILTER)" \
	-not -path "$(ROOT_DIR)/.*" \
	-not -path "$(NODE_MODULES)/*" \
	-not -path "$(TOOLS_DIR)/*" \
	-not -path "$(BUILD_DIR)/*" \
	-not -path "$(DEPS_DIR)/*" \
	-not -path "$(REPORTS_DIR)/*"

ifneq ($(OS), Darwin)
	FIND_CPP_BENCHMARKS_FLAGS := -regextype posix-extended $(FIND_CPP_BENCHMARKS_FLAGS)
endif

# Define a command to list benchmark files:
FIND_CPP_BENCHMARKS_CMD ?= find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_CPP_BENCHMARKS_FLAGS)

# Define the list of benchmark files:
CPP_BENCHMARKS ?= $(shell $(FIND_CPP_BENCHMARKS_CMD))

# TARGETS #

# List C++ benchmark files.
#
# This target prints a newline-delimited list of C++ benchmark files.

list-benchmarks-cpp:
	$(QUIET) find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_CPP_BENCHMARKS_FLAGS) $(find_print_cpp_benchmarks_list)

.PHONY: list-benchmarks-cpp


Include Makefile.$MACHINE, if it exists, otherwise Include Makefile.$MACHINE_ARCH, if it exists, otherwise Include Makefile.$MACHINE_CPUARCH, if it exists, otherwise do nothing

#
# Include the arch-specific Makefile.inc.$ARCH.  We go from most specific
# to least specific, stopping after we get a hit.
#
.if exists(${.CURDIR}/Makefile.${MACHINE})
.include "Makefile.${MACHINE}"
.elif exists(${.CURDIR}/Makefile.${MACHINE_ARCH})
.include "Makefile.${MACHINE_ARCH}"
.elif exists(${.CURDIR}/Makefile.${MACHINE_CPUARCH})
.include "Makefile.${MACHINE_CPUARCH}"
.endif


#
# Copyright (C) 2008 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# BUILD_ID is usually used to specify the branch name
# (like "MAIN") or a branch name and a release candidate
# (like "CRB01").  It must be a single word, and is
# capitalized by convention.

export BUILD_ID=HTK06

Set build id to HTJ85B

#
# Copyright (C) 2008 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# BUILD_ID is usually used to specify the branch name
# (like "MAIN") or a branch name and a release candidate
# (like "CRB01").  It must be a single word, and is
# capitalized by convention.

export BUILD_ID=HTJ85B


# VARIABLES #

# On Mac OSX, in order to use `|` and other regular expression operators, we need to use enhanced regular expression syntax (-E); see https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man7/re_format.7.html#//apple_ref/doc/man/7/re_format.

ifeq ($(OS), Darwin)
	find_kernel_prefix := -E
else
	find_kernel_prefix :=
endif

# Define a suffix for pretty printing results as a list:
find_print_cpp_tests_fixtures_list := -exec printf '%s\n' {} \;

# Define the command flags:
FIND_CPP_TESTS_FIXTURES_FLAGS ?= \
	-type f \
	-name "$(CPP_TESTS_FIXTURES_PATTERN)" \
	-path "$(ROOT_DIR)/**/$(TESTS_FIXTURES_FOLDER)/**" \
	-regex "$(TESTS_FIXTURES_FILTER)" \
	-not -path "$(ROOT_DIR)/.*" \
	-not -path "$(NODE_MODULES)/*" \
	-not -path "$(TOOLS_DIR)/*" \
	-not -path "$(BUILD_DIR)/*" \
	-not -path "$(DEPS_DIR)/*" \
	-not -path "$(REPORTS_DIR)/*" \
	-not -path "$(ROOT_DIR)/**/$(BUILD_FOLDER)/*"

ifneq ($(OS), Darwin)
	FIND_CPP_TESTS_FIXTURES_FLAGS := -regextype posix-extended $(FIND_CPP_TESTS_FIXTURES_FLAGS)
endif

# Define a command to list files:
FIND_CPP_TESTS_FIXTURES_CMD ?= find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_CPP_TESTS_FIXTURES_FLAGS)

# Define the list of files:
CPP_TESTS_FIXTURES ?= $(shell $(FIND_CPP_TESTS_FIXTURES_CMD))

# TARGETS #

# List test fixture files.
#
# This target prints a newline-delimited list of test fixture files.

list-tests-fixtures-cpp:
	$(QUIET) find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_CPP_TESTS_FIXTURES_FLAGS) $(find_print_cpp_tests_fixtures_list)

.PHONY: list-tests-fixtures-cpp


# VARIABLES #

# On Mac OSX, in order to use `|` and other regular expression operators, we need to use enhanced regular expression syntax (-E); see https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man7/re_format.7.html#//apple_ref/doc/man/7/re_format.

ifeq ($(OS), Darwin)
	find_kernel_prefix := -E
else
	find_kernel_prefix :=
endif

# Define a suffix for pretty printing results as a list:
find_print_r_sources_list := -exec printf '%s\n' {} \;

# Define the command flags:
FIND_R_SOURCES_FLAGS ?= \
	-type f \
	-name "$(R_SOURCES_PATTERN)" \
	-regex "$(SOURCES_FILTER)" \
	-not -path "$(ROOT_DIR)/.*" \
	-not -path "$(NODE_MODULES)/*" \
	-not -path "$(TOOLS_DIR)/*" \
	-not -path "$(BUILD_DIR)/*" \
	-not -path "$(DEPS_DIR)/*" \
	-not -path "$(REPORTS_DIR)/*" \
	-not -path "$(ROOT_DIR)/**/$(EXAMPLES_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(TESTS_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(BENCHMARKS_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(BUILD_FOLDER)/*"

ifneq ($(OS), Darwin)
	FIND_R_SOURCES_FLAGS := -regextype posix-extended $(FIND_R_SOURCES_FLAGS)
endif

# Define a command to list source files:
FIND_R_SOURCES_CMD ?= find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_R_SOURCES_FLAGS)

# Define the list of source files:
R_SOURCES ?= $(shell $(FIND_R_SOURCES_CMD))

# TARGETS #

# List source files.
#
# This target prints a newline-delimited list of source files.

list-sources-r:
	$(QUIET) find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_R_SOURCES_FLAGS) $(find_print_r_sources_list)

.PHONY: list-sources-r


EXTRA_DIST += src/modules/sysinfo/module.desktop.in \
src/modules/sysinfo/e-module-sysinfo.edj
if USE_MODULE_SYSINFO
sysinfodir = $(MDIR)/sysinfo
sysinfo_DATA = src/modules/sysinfo/e-module-sysinfo.edj \
	    src/modules/sysinfo/module.desktop

sysinfopkgdir = $(MDIR)/sysinfo/$(MODULE_ARCH)
sysinfopkg_LTLIBRARIES = src/modules/sysinfo/module.la

src_modules_sysinfo_module_la_LIBADD = $(MOD_LIBS)
src_modules_sysinfo_module_la_CPPFLAGS = $(MOD_CPPFLAGS) -Wall -Wextra -Wshadow
src_modules_sysinfo_module_la_LDFLAGS = $(MOD_LDFLAGS)
src_modules_sysinfo_module_la_SOURCES = src/modules/sysinfo/mod.c \
			 src/modules/sysinfo/sysinfo.h \
			 src/modules/sysinfo/batman/batman.h \
                         src/modules/sysinfo/batman/batman.c \
                         src/modules/sysinfo/batman/batman_fallback.c \
                         src/modules/sysinfo/batman/batman_sysctl.c \
                         src/modules/sysinfo/batman/batman_udev.c \
                         src/modules/sysinfo/batman/batman_upower.c \
                         src/modules/sysinfo/thermal/thermal.h \
                         src/modules/sysinfo/thermal/thermal.c \
                         src/modules/sysinfo/thermal/thermal_fallback.c \
                         src/modules/sysinfo/thermal/thermal_sysctl.c \
                         src/modules/sysinfo/thermal/thermal_udev.c \
                         src/modules/sysinfo/cpuclock/cpuclock.h \
                         src/modules/sysinfo/cpuclock/cpuclock.c \
                         src/modules/sysinfo/cpuclock/cpuclock_sysfs.c \
                         src/modules/sysinfo/cpuclock/cpuclock_sysctl.c \
                         src/modules/sysinfo/cpumonitor/cpumonitor.h \
                         src/modules/sysinfo/cpumonitor/cpumonitor.c \
                         src/modules/sysinfo/cpumonitor/cpumonitor_proc.c \
                         src/modules/sysinfo/memusage/memusage.h \
                         src/modules/sysinfo/memusage/memusage.c \
                         src/modules/sysinfo/memusage/memusage_proc.c \
                         src/modules/sysinfo/netstatus/netstatus.h \
                         src/modules/sysinfo/netstatus/netstatus.c \
                         src/modules/sysinfo/netstatus/netstatus_proc.c \
                         src/modules/sysinfo/sysinfo.c

PHONIES += sysinfo install-sysinfo
sysinfo: $(sysinfopkg_LTLIBRARIES) $(sysinfo_DATA)
install-sysinfo: install-sysinfoDATA install-sysinfopkgLTLIBRARIES
endif


Add snapshot of ocmb/explorer for master-p10 branch

# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_background_scrub.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2019
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG

# Include the macros and things for MSS EXP procedures
-include 00exp_common.mk

PROCEDURE=exp_background_scrub
$(eval $(call ADD_EXP_MEMORY_INCDIRS,$(PROCEDURE)))
$(call BUILD_PROCEDURE)


# VARIABLES #

# On Mac OSX, in order to use `|` and other regular expression operators, we need to use enhanced regular expression syntax (-E); see https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man7/re_format.7.html#//apple_ref/doc/man/7/re_format.

ifeq ($(OS), Darwin)
	find_kernel_prefix := -E
else
	find_kernel_prefix :=
endif

# Define a suffix for pretty printing results as a list:
find_print_fortran_sources_list := -exec printf '%s\n' {} \;

# Define the command flags:
FIND_FORTRAN_SOURCES_FLAGS ?= \
	-type f \
	-name "$(FORTRAN_SOURCES_PATTERN)" \
	-regex "$(SOURCES_FILTER)" \
	-not -path "$(ROOT_DIR)/.*" \
	-not -path "$(NODE_MODULES)/*" \
	-not -path "$(TOOLS_DIR)/*" \
	-not -path "$(BUILD_DIR)/*" \
	-not -path "$(DEPS_DIR)/*" \
	-not -path "$(REPORTS_DIR)/*" \
	-not -path "$(ROOT_DIR)/**/$(EXAMPLES_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(TESTS_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(BENCHMARKS_FOLDER)/*" \
	-not -path "$(ROOT_DIR)/**/$(BUILD_FOLDER)/*"

ifneq ($(OS), Darwin)
	FIND_FORTRAN_SOURCES_FLAGS := -regextype posix-extended $(FIND_FORTRAN_SOURCES_FLAGS)
endif

# Define a command to list source files:
FIND_FORTRAN_SOURCES_CMD ?= find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_FORTRAN_SOURCES_FLAGS)

# Define the list of source files:
FORTRAN_SOURCES ?= $(shell $(FIND_FORTRAN_SOURCES_CMD))

# TARGETS #

# List source files.
#
# This target prints a newline-delimited list of source files.

list-sources-fortran:
	$(QUIET) find $(find_kernel_prefix) $(ROOT_DIR) $(FIND_FORTRAN_SOURCES_FLAGS) $(find_print_fortran_sources_list)

.PHONY: list-sources-fortran


CC = c99
CFLAGS = -Wall
VPATH = ./src
O = ./obj
OBJS = $(addprefix $O/, $(addsuffix .o, main debug options io))

.SUFFIXES:

all: zar

zar: $(OBJS)
	$(LINK.c) $^ -o $@

$(O)/%.o : %.c
	$(COMPILE.c) $< -o $@

clean:
	rm -f $O/*.o
	rm -f zar


# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_draminit_mc.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG

-include 00exp_common.mk

PROCEDURE=exp_draminit_mc
$(eval $(call ADD_EXP_MEMORY_INCDIRS,$(PROCEDURE)))
$(call BUILD_PROCEDURE)


<%inherit file="master.mak" />

HW

"Work From Home" gets better later, promise.

Tasks

            %for hw in hws:

${hw}

            %endfor


LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE_PATH :=

LOCAL_SRC_FILES:= \
	main.cpp \
	TestPlatform.cpp

LOCAL_MODULE:= test-platform

LOCAL_MODULE_TAGS := optional

TARGET_ERROR_FLAGS += -Wno-non-virtual-dtor

LOCAL_C_INCLUDES += \
	external/stlport/stlport/ \
	bionic/libstdc++ \
	bionic/

LOCAL_C_INCLUDES += \
	$(LOCAL_PATH)/../../parameter \
	$(LOCAL_PATH)/../../remote-processor/

LOCAL_SHARED_LIBRARIES :=  \
	libparameter \
	libremote-processor

LOCAL_STATIC_LIBRARIES :=

LOCAL_LDLIBS +=
LOCAL_LDFLAGS +=

include $(BUILD_EXECUTABLE)


Add environment variables for configuring ESLint

# VARIABLES #

# Define the path to the [ESLint][1] executable.
#
# To install ESLint:
#     $ npm install eslint
#
# [1]: http://eslint.org//

JAVASCRIPT_LINT ?= $(BIN_DIR)/eslint

# Define the path to the ESLint configuration file:
ESLINT_CONF ?= $(CONFIG_DIR)/eslint/.eslintrc.js

# Define the path to the ESLint ignore file:
ESLINT_IGNORE ?= $(CONFIG_DIR)/eslint/.eslintignore

# Define the command-line options to use when invoking the ESLint executable:
JAVASCRIPT_LINT_FLAGS ?= \
	--config $(ESLINT_CONF) \
	--ignore-path $(ESLINT_IGNORE)


LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := yogacore

LOCAL_SRC_FILES := \
  yoga/Yoga.cpp \
  yoga/YGEnums.cpp \
	yoga/YGNodePrint.cpp

LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)

LOCAL_CFLAGS := -Wall -Werror -fexceptions -frtti -std=c++1y -O3

include $(BUILD_STATIC_LIBRARY)

Use wildcard instead of manual file addition

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := yogacore

LOCAL_SRC_FILES := $(wildcard $(LOCAL_PATH)/yoga/*.cpp)

LOCAL_C_INCLUDES := $(LOCAL_PATH)
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES)

LOCAL_CFLAGS := -Wall -Werror -fexceptions -frtti -std=c++1y -O3

include $(BUILD_STATIC_LIBRARY)


Add Makefile code for building Cabal packages.

# The following works in a GHC build tree.  To use the installed GHC
# instead, replace with GHC=ghc.
GHC=../../../inplace/bin/ghc-stage2

# The "-pkg" suffix is to avoid clashing with the dph-seq and dph-par
# directories created by the GHC build system.

all : dph-seq-pkg dph-par-pkg sdist

define dph_create

dph-$1-pkg :
	rm -rf dph-$1-pkg dph-$1-pkg.tmp
	cp -r dph-common dph-$1-pkg.tmp
	rm dph-$1-pkg.tmp/dph-common.cabal
	sed -e "s/DPHWAY/$1/g;/HS-Source-Dirs/d" dph-common/dph-common.cabal > dph-$1-pkg.tmp/dph-$1-pkg.cabal
	sed "s/common/$1/g" dph-common/ghc.mk > dph-$1-pkg.tmp/ghc.mk
	sed "s/common/$1/g" dph-common/GNUmakefile > dph-$1-pkg.tmp/GNUmakefile
	mv dph-$1-pkg.tmp dph-$1-pkg

endef

$(eval $(call dph_create,seq))
$(eval $(call dph_create,par))

clean :
	rm -rf dph-seq-pkg dph-par-pkg

PACKAGES = dph-base dph-prim-interface dph-prim-seq dph-prim-par dph-seq-pkg dph-par-pkg

sdist : dph-seq-pkg dph-par-pkg
	for i in $(PACKAGES); do \
	    ( cd $$i; \
	      cabal configure --with-ghc=$(GHC); \
	      cabal sdist; ) \
        done
	@echo
	@echo "packages are:" $(foreach i, $(PACKAGES), $i/dist/*.tar.gz)


#
# Makefile for the px4fmu_default configuration
#

#
# Use the configuration's ROMFS.
#
ROMFS_ROOT	 = $(PX4_BASE)/ROMFS/px4fmu_test
ROMFS_OPTIONAL_FILES = $(PX4_BASE)/Images/px4io-v1_default.bin

#
# Board support modules
#
MODULES		+= drivers/device
MODULES		+= drivers/stm32
MODULES		+= drivers/stm32/adc
MODULES		+= drivers/stm32/tone_alarm
MODULES		+= drivers/led
MODULES		+= drivers/boards/px4fmu-v1
MODULES		+= drivers/px4io
MODULES		+= systemcmds/perf
MODULES		+= systemcmds/reboot
MODULES		+= systemcmds/tests
MODULES		+= systemcmds/nshterm

#
# Library modules
#
MODULES		+= modules/systemlib
MODULES		+= modules/systemlib/mixer
MODULES		+= modules/uORB

#
# Transitional support - add commands from the NuttX export archive.
#
# In general, these should move to modules over time.
#
# Each entry here is <command>.<priority>.<stacksize>.<entrypoint> but we use a helper macro
# to make the table a bit more readable.
#
define _B
	$(strip $1).$(or $(strip $2),SCHED_PRIORITY_DEFAULT).$(or $(strip $3),CONFIG_PTHREAD_STACK_DEFAULT).$(strip $4)
endef

#                  command                 priority                   stack  entrypoint
BUILTIN_COMMANDS := \
	$(call _B, sercon,                 ,                          2048,  sercon_main                ) \
	$(call _B, serdis,                 ,                          2048,  serdis_main                )


# external/alsa-lib/src/conf/Android.mk
#
## Copy ALSA configuration files to rootfs
##

LOCAL_PATH := external/alsa-lib/src/conf

TARGET_ALSA_CONF_DIR := system/usr/share/alsa
#LOCAL_ALSA_CONF_DIR := $(LOCAL_PATH)/conf

# system configuration files
#
PRODUCT_COPY_FILES += \
	$(LOCAL_PATH)/alsa.conf:$(TARGET_ALSA_CONF_DIR)/alsa.conf \
	$(LOCAL_PATH)/pcm/dsnoop.conf:$(TARGET_ALSA_CONF_DIR)/pcm/dsnoop.conf \
	$(LOCAL_PATH)/pcm/modem.conf:$(TARGET_ALSA_CONF_DIR)/pcm/modem.conf \
	$(LOCAL_PATH)/pcm/dpl.conf:$(TARGET_ALSA_CONF_DIR)/pcm/dpl.conf \
	$(LOCAL_PATH)/pcm/default.conf:$(TARGET_ALSA_CONF_DIR)/pcm/default.conf \
	$(LOCAL_PATH)/pcm/surround51.conf:$(TARGET_ALSA_CONF_DIR)/pcm/surround51.conf \
	$(LOCAL_PATH)/pcm/surround41.conf:$(TARGET_ALSA_CONF_DIR)/pcm/surround41.conf \
	$(LOCAL_PATH)/pcm/surround50.conf:$(TARGET_ALSA_CONF_DIR)/pcm/surround50.conf \
	$(LOCAL_PATH)/pcm/dmix.conf:$(TARGET_ALSA_CONF_DIR)/pcm/dmix.conf \
	$(LOCAL_PATH)/pcm/center_lfe.conf:$(TARGET_ALSA_CONF_DIR)/pcm/center_lfe.conf \
	$(LOCAL_PATH)/pcm/surround40.conf:$(TARGET_ALSA_CONF_DIR)/pcm/surround40.conf \
	$(LOCAL_PATH)/pcm/side.conf:$(TARGET_ALSA_CONF_DIR)/pcm/side.conf \
	$(LOCAL_PATH)/pcm/iec958.conf:$(TARGET_ALSA_CONF_DIR)/pcm/iec958.conf \
	$(LOCAL_PATH)/pcm/rear.conf:$(TARGET_ALSA_CONF_DIR)/pcm/rear.conf \
	$(LOCAL_PATH)/pcm/surround71.conf:$(TARGET_ALSA_CONF_DIR)/pcm/surround71.conf \
	$(LOCAL_PATH)/pcm/front.conf:$(TARGET_ALSA_CONF_DIR)/pcm/front.conf \
	$(LOCAL_PATH)/cards/aliases.conf:$(TARGET_ALSA_CONF_DIR)/cards/aliases.conf


Add initial L2 mss_freq_system procedure.

# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/p9/procedures/hwp/memory/p9_mss_freq_system.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2015,2019
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG

# Include the macros and things for MSS procedures
-include 00common.mk

PROCEDURE=p9_mss_freq_system
$(eval $(call ADD_MEMORY_INCDIRS,$(PROCEDURE)))
lib$(PROCEDURE)_DEPLIBS+=mss
$(call BUILD_PROCEDURE)


Add coverage and valgrind support for tests

# run lcov from scratch, always
lcov-reset:
	make lcov-run
	make lcov-report

# run lcov from scratch if the dir is not there
lcov:
	make lcov-reset

# reset run coverage tests
lcov-run:
	@-rm -rf lcov
	@-find . -name "*.gcda" -exec rm {} \;
	-make check

# generate report based on current coverage data
lcov-report:
	mkdir lcov
	$(LCOV_PATH) --compat-libtool --directory . --capture --output-file lcov/lcov.info
	$(LCOV_PATH) --compat-libtool -l lcov/lcov.info | grep -v "`cd $(top_srcdir) && pwd`" | cut -d: -f1 > lcov/remove
	$(LCOV_PATH) --compat-libtool -l lcov/lcov.info | grep "tests/" | cut -d: -f1 >> lcov/remove
	$(LCOV_PATH) --compat-libtool -r lcov/lcov.info `cat lcov/remove` > lcov/lcov.cleaned.info
	rm lcov/remove
	mv lcov/lcov.cleaned.info lcov/lcov.info
	genhtml -t "$(PACKAGE_STRING)" -o lcov lcov/lcov.info


Change to support Windows 2000 behaviour by default

all: setup expat expatw expat_static expatw_static elements outline xmlwf

setup:
 setup

expat:
 make -l -fexpat.mak

expatw:
 make -l -fexpatw.mak

expat_static:
 make -l -fexpat_static.mak

expatw_static:
 make -l -fexpatw_static.mak

elements:
 make -l -felements.mak

outline:
 make -l -foutline.mak

xmlwf:
 make -l -fxmlwf.mak

clean:
# works on Win98/ME
# deltree /y release\obj
# works on WinNT/2000
 del /s/f/q release\obj

distclean:
# works on Win98/ME
# deltree /y release\*.*
# works on WinNT/2000
 del /s/f/q release\*


all: autoload/vimproc_win64.dll

autoload/vimproc_win64.dll: autoload/proc_w32.c autoload/vimstack.c
	cl /wd4996 /LD /Feautoload/vimproc_win64.dll autoload/proc_w32.c ws2_32.lib advapi32.lib shell32.lib

clean:
	cmd /C "del autoload\vimproc_win64.dll autoload\vimproc_win64.lib autoload\vimproc_win64.exp" /F /Q


Add mingw makefile for GNU, from Shmuel.

# Project: rex_gnu

# User Settings ------------------------------------------------------------
# path of Lua include files
LUAINC = s:\progr\work\system\include

# path of GNU include files
REGEXINC = s:\progr\work\system\include\gnuregex

# path of Lua DLL and regex2.dll
DLLPATH = c:\exe

# name of Lua DLL to link to (.dll should be omitted)
LUADLL = lua5.1

# path to install rex_gnu.dll
INSTALLPATH = s:\exe\lib\lua\5.1
# --------------------------------------------------------------------------

PROJECT     = rex_gnu
MYINCS      = -I$(REGEXINC) -I$(LUAINC)
MYLIBS      = -L$(DLLPATH) -lregex2 -l$(LUADLL)
OBJ         = lgnu.o common.o
MYCFLAGS    = -W -Wall -O2
EXPORTED    = 'luaopen_$(PROJECT)'
SRCPATH     = ..\..\src;..\..\src\gnu
TESTPATH    = ..\..\test
TESTNAME    = gnu

include _mingw.mak

lgnu.o    : common.h algo.h
common.o  : common.h


Build with the help with make (no configure calling).

# UnixFormula.mk - Standard build with make.
# Copyright (c) 2011 Ruda Moura
# Authors: Ruda Moura, Leonardo Santagada

define build_inner_hook
cd $(BuildDir) ; $(gnu_make) $(GnuMakeExtra) \
	CFLAGS="$(CFlags)" CXXFLAGS="$(CxxFlags)" LDFALGS="$(LdFlags)"
endef

define install_inner_hook
$(install_base_documentation)
endef


COMPONENT_SUBMODULES += esp-mqtt
COMPONENT_ADD_INCLUDEDIRS := esp-mqtt/include
COMPONENT_SRCDIRS :=  esp-mqtt esp-mqtt/lib
COMPONENT_PRIV_INCLUDEDIRS := esp-mqtt/lib/include

ifeq ($(GCC_NOT_5_2_0), 1)
esp-mqtt/lib/transport_ws.o: CFLAGS += -Wno-format-overflow
endif

Remove the ignore warning because we had idf/esp-idf!3359


LOCAL_PATH := $(call my-dir)
#: Set by build script to <app>/build/python/
PYTHON_PATH := ../../../../../../build/python

# Build libpybridge.so

include $(CLEAR_VARS)
LOCAL_MODULE    := pybridge
LOCAL_SRC_FILES := pybridge.c
LOCAL_LDLIBS := -llog
LOCAL_SHARED_LIBRARIES := python2.7
include $(BUILD_SHARED_LIBRARY)

# Include libpython2.7.so

include $(CLEAR_VARS)
LOCAL_MODULE    := python2.7
LOCAL_SRC_FILES := $(PYTHON_PATH)/$(TARGET_ARCH_ABI)/modules/libpython2.7.so
LOCAL_EXPORT_CFLAGS := -I $(PYTHON_PATH)/$(TARGET_ARCH_ABI)/include/
include $(PREBUILT_SHARED_LIBRARY)


<%inherit file="master.mak" />

OER FTW

Open Educational Resources (For the Win)

Books

            %for book in books:

${book}

            %endfor

Decks

            %for deck in decks:

${deck}

            %endfor

Challenges

            %for challenge in challenges:

${challenge}

            %endfor

Change challengs to point to real files


LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
LOCAL_SRC_FILES := src/bitwise.c \
                   src/framing.c
LOCAL_MODULE    := libogg
LOCAL_MODULE_TAGS := optional

LOCAL_SDK_VERSION := 14

include $(BUILD_STATIC_LIBRARY)


Add empty new helper procedure for mirroring to HB, HWSV

# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/import/chips/p9/procedures/hwp/ffdc/p9_collect_lpc_regs.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2018,2019
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG


template(name="archivedBoards")
  h2
    i.fa.fa-archive
    | {{_ 'archived-boards'}}

  ul.archived-lists
    each archivedBoards
      li.archived-lists-item
        div.board-header-btns
          button.board-header-btn.js-delete-board
            i.fa.fa-trash-o
            | {{_ 'delete-board'}}
          button.board-header-btn.js-restore-board
            i.fa.fa-undo
            | {{_ 'restore-board'}}
          = title
    else
      li.no-items-message {{_ 'no-archived-boards'}}

template(name="boardDeletePopup")
  p {{_ 'delete-board-confirm-popup'}}
  button.js-confirm.negate.full(type="submit") {{_ 'delete'}}

Add display timestamp on 'Boards in Archive'

template(name="archivedBoards")
  h2
    i.fa.fa-archive
    | {{_ 'archived-boards'}}

  ul.archived-lists
    each archivedBoards
      li.archived-lists-item
        div.board-header-btns
          button.board-header-btn.js-delete-board
            i.fa.fa-trash-o
            | {{_ 'delete-board'}}
          button.board-header-btn.js-restore-board
            i.fa.fa-undo
            | {{_ 'restore-board'}}
          = title
        span {{ moment archivedAt 'LLL' }}
    else
      li.no-items-message {{_ 'no-archived-boards'}}

template(name="boardDeletePopup")
  p {{_ 'delete-board-confirm-popup'}}
  button.js-confirm.negate.full(type="submit") {{_ 'delete'}}


#main-layout-search-bar-container( itemscope, itemtype='http://schema.org/WebSite' )
  meta( itemprop='url', content='https://artsy.net' )
  form( itemprop='potentialAction', itemscope, itemtype='http://schema.org/SearchAction' )
    meta( itemprop="target", content="https://artsy.net/search?q={search_term}" )

    input#main-layout-search-bar-input.bordered-input(
      placeholder='Search…'
      tabindex='1'
      itemprop='query-input'
      type='text'
      name='search_term'
      value= term
      autocomplete="off"
      autocorrect="off"
      autocapitalize="off"
      spellcheck="false"
      required
    )

    a#main-layout-search-bar-icon.icon-search

    #main-layout-search-bar-spinner: .loading-spinner-small
    #main-layout-search-bar-feedback.autocomplete-feedback
      //- Rendered client-side

Fix search form action + input name

#main-layout-search-bar-container( itemscope, itemtype='http://schema.org/WebSite' )
  meta( itemprop='url', content='https://artsy.net' )
  form(
    action='/search'
    method='GET'
    itemprop='potentialAction'
    itemscope
    itemtype='http://schema.org/SearchAction'
  )
    meta( itemprop="target", content="https://artsy.net/search?q={search_term}" )

    input#main-layout-search-bar-input.bordered-input(
      placeholder='Search…'
      tabindex='1'
      itemprop='query-input'
      type='text'
      name='q'
      value= term
      autocomplete="off"
      autocorrect="off"
      autocapitalize="off"
      spellcheck="false"
      required
    )

    a#main-layout-search-bar-icon.icon-search

    #main-layout-search-bar-spinner: .loading-spinner-small
    #main-layout-search-bar-feedback.autocomplete-feedback
      //- Rendered client-side


.tool-header.sm-control-button-wrapper.hidden-xs(aria-hidden='true')
  a.sm-control-button(href="#", role="button", aria-label= t('general.open') + ' ' + t('tools.menu'), aria-pressed="false")
    span
      i.icon-icon-tools
  #tool-context.context-menu

Make tool menu accessible again

.tool-header.sm-control-button-wrapper.hidden-xs
  a.sm-control-button(href="#", role="button", aria-label= t('general.open') + ' ' + t('tools.menu'), aria-pressed="false")
    span
      i.icon-icon-tools
  #tool-context.context-menu


article.help
  .container-fluid
    section.row-fluid.summary
      .summary.col-sm-3
        h3 START
        p.lead with known data
      .details.col-sm-9
        p
          | The
          code START
          | clause should only be used when accessing legacy indexes.
          br
          | In all other cases, use
          code MATCH
          | instead.
        table.table-condensed.table-help
          tr
            th Reference:
            td
              code
                a(href='http://neo4j.com/docs/{{neo4j.version}}/query-start.html') START
              |  manual page
          tr
            th Related:
            td
              a(help-topic='match') :help MATCH
              |
              a(help-topic='return') :help RETURN
              |
              a(help-topic='cypher') :help Cypher
    section.row-fluid.example
      .col-sm-9.col-sm-offset-3
        figure
          pre.code.runnable.
            START n=node:names(name = "A")
            RETURN n
          figcaption The query returns the node indexed with the name "
            code A
            | " in the legacy index name "names".

Remove legacy index example query.


#header-container
  a(href='#', id='toggleButton')
    span.bar-icon
    span.bar-icon
    span.bar-icon

  h1#logo
    a(href=config['home link'] || '/')
      img(src=config['logo']).logo
      span.logo-link= t('common.app-name')

  .user-nav.btn-group
    .user
    a(href='/signin').login.pull-right.anonymous-citizen
      i.icon-signin
      span= t('header.signin')
    a(href='/signup').login.pull-right.anonymous-citizen
      i.icon-user
      span= t('header.signup')
    a.login.pull-left(href=config['organization url'])
      span= config['organization name']
    //- a.login.pull-left(href='#', id='feedback')
    //-   span= t('header.feedback')

Revert "Fix organization link to open on same tab"

#header-container
  a(href='#', id='toggleButton')
    span.bar-icon
    span.bar-icon
    span.bar-icon

  h1#logo
    a(href=config['home link'] || '/')
      img(src=config['logo']).logo
      span.logo-link= t('common.app-name')

  .user-nav.btn-group
    .user
    a(href='/signin').login.pull-right.anonymous-citizen
      i.icon-signin
      span= t('header.signin')
    a(href='/signup').login.pull-right.anonymous-citizen
      i.icon-user
      span= t('header.signup')
    a.login.pull-left(href=config['organization url'], target='_blank')
      span= config['organization name']
    //- a.login.pull-left(href='#', id='feedback')
    //-   span= t('header.feedback')


header Orbit
.content
	.control-block.v-altitude
		label Altitude
		.display.sea
			| {{numeral(data['v.altitude']).format('0.000 a')}}m
	.control-block.o-apa
		label Apoapsis
		.display
			| {{numeral(data['o.ApA']).format('0.000 a')}}m
			| T{{data['o.timeToAp'] > 0 ? '-' : '+'}}{{numeral(data['o.timeToAp']).format('00:00:00')}}
	.control-block.o-pea
		label Periapsis
		.display
			| {{numeral(data['o.PeA']).format('0.000 a')}}m
			|  T{{data['o.timeToPe'] > 0 ? '-' : '+'}}{{numeral(data['o.timeToPe']).format('00:00:00')}}

Fix string padding in orbit module


for msg in messages
  div #{msg.msg}

h1 Checkout
label(for="amount") amount
input(type="text", name="amount", id="amount")
form(id='checkout', action='/checkouts', method='post')
  div(id='payment-form')
  input(type='submit', value='Pay $10')

script(src='https://js.braintreegateway.com/v2/braintree.js')
script.
  var token = "#{clientToken}";
  braintree.setup(token, "dropin", {
    container: "payment-form"
  });

Move amount input field within dropin form

for msg in messages
  div #{msg.msg}

h1 Checkout
form(id='checkout', action='/checkouts', method='post')
  label(for="amount") amount
  input(type="text", name="amount", id="amount")
  div(id='payment-form')
  input(type='submit', value='Pay $10')

script(src='https://js.braintreegateway.com/v2/braintree.js')
script.
  var token = "#{clientToken}";
  braintree.setup(token, "dropin", {
    container: "payment-form"
  });


//
  If the image state is 'loaded', then the image selector is a
  button which opens the image. Otherwise, the image selector
  is a button which loads the image.

button.btn.btn-default.btn-xs.qi-nav-btn.qi-vol-btn(
  ng-click='openImage()'
  ng-show="image.state == 'loaded'"
)
  .glyphicon.glyphicon-eye-open

button.btn.btn-default.btn-xs.qi-nav-btn.qi-vol-btn(
  ng-click='image.load()'
  ng-hide="image.state == 'loaded'"
  ng-disabled="image.state == 'loading'"
  qi-spin="image.state == 'loading'"
)
  .glyphicon.glyphicon-download

Call image functions for state.

//
  If the image state is 'loaded', then the image selector is a
  button which opens the image. Otherwise, the image selector
  is a button which loads the image.

button.btn.btn-default.btn-xs.qi-nav-btn.qi-vol-btn(
  ng-click='openImage()'
  ng-show="image.isLoaded()"
)
  .glyphicon.glyphicon-eye-open

button.btn.btn-default.btn-xs.qi-nav-btn.qi-vol-btn(
  ng-click='image.load()'
  ng-hide="image.isLoaded()"
  ng-disabled="image.isLoading()"
  qi-spin="image.isLoading()"
)
  .glyphicon.glyphicon-download


extends layout

block content

  row
    div
      table.table.table-striped.table-responsive
        thead
          tr
            th name
            th status
            for lang in layout.languages
              th= lang
            th service
         tbody
          each blog, i in blogs
            tr
              td
                a(href='#{layout.htmlroot}/blog/' + blog.id) #{blog.name}
              td= blog.status
              - var allclosed=true
              for lang in layout.languages
                td
                  if blog["close"+lang]
                    | closed
                  else
                    - allclosed = false
                    if blog["reviewComment"+lang]
                      | review
                    else
                      a(href="#{layout.htmlroot}/article/list?markdown#{lang}=&category=!=--unpublished--&blog=#{blog.name}")
                        span.glyphicon.glyphicon-pencil

              td
                if allclosed
                  a(href="#{layout.htmlroot}/blog/#{blog.id}?setStatus=closed") Close Blog
                else
                  | -

Disable Help Blogs if not only help blogs are displayed.

extends layout

block content

  row
    div
      table.table.table-striped.table-responsive
        thead
          tr
            th name
            th status
            for lang in layout.languages
              th= lang
            th service
         tbody
          - var onlyhelp = true
          each blog in blogs
            if blog.status != help
              -onlyhelp = false

          each blog, i in blogs
            tr
              if (onlyhelp || blog.status != "help")
                td
                  a(href='#{layout.htmlroot}/blog/' + blog.id) #{blog.name}
                td= blog.status
                - var allclosed=true
                for lang in layout.languages
                  td
                    if blog["close"+lang]
                      | closed
                    else
                      - allclosed = false
                      if blog["reviewComment"+lang]
                        | review
                      else
                        a(href="#{layout.htmlroot}/article/list?markdown#{lang}=&category=!=--unpublished--&blog=#{blog.name}")
                          span.glyphicon.glyphicon-pencil

                td
                  if allclosed
                    a(href="#{layout.htmlroot}/blog/#{blog.id}?setStatus=closed") Close Blog
                  else
                    | -


doctype html
html
  body
    h1 Hellow World!
    p goodbye!

Add `head` element and meta tags

doctype html
html(lang='en-us')
  head
    meta(http-equiv='Content-Type', content='text/html; charset=utf-8')
    meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
    meta(name='viewport', content='width=device-width, initial-scale=1.0')
  body
    h1 Hellow World!
    p goodbye!


mixin header
    .navbar.navbar-inverse.navbar-fixed-top(ng-show="displayToolbar",role='navigation',ng-controller="HeaderController")
        .navbar-header
            button.navbar-toggle(type='button', data-toggle='collapse', data-target='.navbar-collapse')
                span.sr-only Toggle navigation
                span.icon-bar
                span.icon-bar
                span.icon-bar
            a.navbar-brand(href='#home') {{ ::text.appTitle }}
        .navbar-collapse.collapse
            ul.nav.navbar-nav
                li(ui-sref="home",ui-sref-active="active")
                    a(href='#home') {{ ::text.leftMenu.home}}

            ul.nav.navbar-nav.navbar-right
                li.dropdown(dropdown="")
                    a.dropdown-toggle(dropdown-toggle="")
                        span.glyphicon.glyphicon-user
                        span.dropdown-title {{ ::text.rightMenu.profile }}
                    ul.dropdown-menu
                        li
                            a(href="#profile-management") {{ ::text.rightMenu.settings }}
                        li
                            a(href="#files-management")
                                span.glyphicon.glyphicon-file
                                span {{ ::text.rightMenu.files }}
                li.dropdown(dropdown="")
                    a.dropdown-toggle(dropdown-toggle="")
                        span.glyphicon.glyphicon-question-sign
                    ul.dropdown-menu
                        li
                            a(href="#help") {{ ::text.rightMenu.help }}
                        li
                            a(href="#about") {{ ::text.rightMenu.about }}

Change the nav bar's href.

mixin header
    .navbar.navbar-inverse.navbar-fixed-top(ng-show="displayToolbar",role='navigation',ng-controller="HeaderController")
        .navbar-header
            button.navbar-toggle(type='button', data-toggle='collapse', data-target='.navbar-collapse')
                span.sr-only Toggle navigation
                span.icon-bar
                span.icon-bar
                span.icon-bar
            a.navbar-brand(href='https://angularjs.org/', target="_blank") {{ ::text.appTitle }}
        .navbar-collapse.collapse
            ul.nav.navbar-nav
                li(ui-sref="home",ui-sref-active="active")
                    a(href='#home') {{ ::text.leftMenu.home}}

            ul.nav.navbar-nav.navbar-right
                li.dropdown(dropdown="")
                    a.dropdown-toggle(dropdown-toggle="")
                        span.glyphicon.glyphicon-user
                        span.dropdown-title {{ ::text.rightMenu.profile }}
                    ul.dropdown-menu
                        li
                            a(href="#profile-management") {{ ::text.rightMenu.settings }}
                        li
                            a(href="#files-management")
                                span.glyphicon.glyphicon-file
                                span {{ ::text.rightMenu.files }}
                li.dropdown(dropdown="")
                    a.dropdown-toggle(dropdown-toggle="")
                        span.glyphicon.glyphicon-question-sign
                    ul.dropdown-menu
                        li
                            a(href="#help") {{ ::text.rightMenu.help }}
                        li
                            a(href="#about") {{ ::text.rightMenu.about }}


extends layout

block content
  // header
  h1 Rose
  p An interactive, technical, and openly editable Rosetta Stone for developers.

  // search form
  form.pure-form(role='search', ng-submit='updateResults()')
    input.pure-input-rounded(type='search', ng-model='query', placeholder='Search for features, technologies, or code snippets', ng-change='updateResults()', autofocus)
    button.pure-button.pure-button-primary(type='submit') Search

  // results
  .search-results
    .card(ng-repeat='feature in features')
      h2.panel-title(ng-bind-html='feature.name | highlight:query')
      table.pure-table.pure-table-striped
        tr(ng-repeat='example in feature.examples')
          td(ng-bind-html='example.technology | highlight:query')
          td: pre(ng-repeat='snippet in listify(example.snippets)')
            code(ng-bind-html='snippet | highlight:query')
    h2.text-muted(ng-if='!features') No results

  // footer
  hr
  footer
    | © 2014
    a(href='http://nicolasmccurdy.com/') Nicolas McCurdy
    a.pull-right(href='https://github.com/nicolasmccurdy/rose' target='_blank').
      GitHub Repository

Fix the display of "No results"

extends layout

block content
  // header
  h1 Rose
  p An interactive, technical, and openly editable Rosetta Stone for developers.

  // search form
  form.pure-form(role='search', ng-submit='updateResults()')
    input.pure-input-rounded(type='search', ng-model='query', placeholder='Search for features, technologies, or code snippets', ng-change='updateResults()', autofocus)
    button.pure-button.pure-button-primary(type='submit') Search

  // results
  .search-results
    .card(ng-repeat='feature in features')
      h2.panel-title(ng-bind-html='feature.name | highlight:query')
      table.pure-table.pure-table-striped
        tr(ng-repeat='example in feature.examples')
          td(ng-bind-html='example.technology | highlight:query')
          td: pre(ng-repeat='snippet in listify(example.snippets)')
            code(ng-bind-html='snippet | highlight:query')
    h2.text-muted(ng-if='!features || features.length === 0') No results

  // footer
  hr
  footer
    | © 2014
    a(href='http://nicolasmccurdy.com/') Nicolas McCurdy
    a.pull-right(href='https://github.com/nicolasmccurdy/rose' target='_blank').
      GitHub Repository


.modal-dialog
  .modal-content
    .modal-header
      button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
      - var t = type === 'new-file' ? 'directory' : type;
      - var name = title ? ' for "' + title + '"' : '';
      if value && value.name
        - value = value.name()
      h4.modal-title
        | Select a #{t}#{name}
    .modal-body(
      data-target-id='#{id}')
      .alert.alert-danger.h-modal-error.hidden
      .h-hierarchy-widget
      if type === 'new-file'
        .form-group
          label.control-label(for='h-new-file-name') Item name
          input.form-control(
            type='text'
            id='h-new-file-name'
            value=value
            placeholder='Enter an item name...')

    if type === 'directory' || type === 'new-file'
      .modal-footer
        a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
        button.h-select-button.btn.btn-small.btn-primary(type="submit")
          i.icon-edit
            | Select

Change `Select` to `Save` and moved it outside of the icon element

.modal-dialog
  .modal-content
    .modal-header
      button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
      - var t = type === 'new-file' ? 'directory' : type;
      - var name = title ? ' for "' + title + '"' : '';
      if value && value.name
        - value = value.name()
      h4.modal-title
        | Select a #{t}#{name}
    .modal-body(
      data-target-id='#{id}')
      .alert.alert-danger.h-modal-error.hidden
      .h-hierarchy-widget
      if type === 'new-file'
        .form-group
          label.control-label(for='h-new-file-name') Item name
          input.form-control(
            type='text'
            id='h-new-file-name'
            value=value
            placeholder='Enter an item name...')

    if type === 'directory' || type === 'new-file'
      .modal-footer
        a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
        button.h-select-button.btn.btn-small.btn-primary(type="submit")
          i.icon-edit
          | Save


.modal-dialog
  .modal-content
    .modal-header
      button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
      - var t = type === 'new-file' ? 'directory' : type;
      - var name = title ? ' for "' + title + '"' : '';
      if value && value.name
        - value = value.name()
      h4.modal-title
        | Select a #{t}#{name}
    .modal-body(
      data-target-id='#{id}')
      .alert.alert-danger.h-modal-error.hidden
      .h-hierarchy-widget
      if type === 'new-file'
        .form-group
          input.form-control(
            type='text'
            id='h-new-file-name'
            value=value
            placeholder='Enter an item name...')

    if type === 'directory' || type === 'new-file'
      .modal-footer
        a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
        button.h-select-button.btn.btn-small.btn-primary(type="submit")
          i.icon-edit
            | Select

Add a form label for the item name input box

.modal-dialog
  .modal-content
    .modal-header
      button.close(data-dismiss="modal", aria-hidden="true", type="button") ×
      - var t = type === 'new-file' ? 'directory' : type;
      - var name = title ? ' for "' + title + '"' : '';
      if value && value.name
        - value = value.name()
      h4.modal-title
        | Select a #{t}#{name}
    .modal-body(
      data-target-id='#{id}')
      .alert.alert-danger.h-modal-error.hidden
      .h-hierarchy-widget
      if type === 'new-file'
        .form-group
          label.control-label(for='h-new-file-name') Item name
          input.form-control(
            type='text'
            id='h-new-file-name'
            value=value
            placeholder='Enter an item name...')

    if type === 'directory' || type === 'new-file'
      .modal-footer
        a.btn.btn-small.btn-default(data-dismiss="modal") Cancel
        button.h-select-button.btn.btn-small.btn-primary(type="submit")
          i.icon-edit
            | Select


extends layout
block content
  section.main.style1
    .container
      .row(class='0%')
        h2 Aanwezigheidslijst

        for table in tables
          table.table
            caption=verenigingen[table.name].name
            thead
              tr
                th Voornaam
                th Achternaam
                th Email
                th Bus
            tbody
              for row in table.rows
                tr
                  td=row.firstname
                  td=row.surname
                  td=row.email
                  td
                    if row.bus
                      span.fa.fa-check(style='color:#79bf46;')
                    else
                      span.fa.fa-close(style='color:#bf464c;')

Include total and per-vereniging visitor count

extends layout
block content
  section.main.style1
    .container
      .row(class='0%')
        - count = 0
        - for table in tables
          for row in table.rows
            - count++
        h2= 'Aanwezigheidslijst (' + count + ')'

        for table in tables
          table.table
            caption=verenigingen[table.name].name + ' (' + table.rows.length + ')'
            thead
              tr
                th Voornaam
                th Achternaam
                th Email
                th Bus
            tbody
              for row in table.rows
                tr
                  td=row.firstname
                  td=row.surname
                  td=row.email
                  td
                    if row.bus
                      span.fa.fa-check(style='color:#79bf46;')
                    else
                      span.fa.fa-close(style='color:#bf464c;')


extends layout

block header
	link(rel='stylesheet', href='/css/form.css')
	link(rel='stylesheet', href='http://fonts.googleapis.com/css?family=Lobster+Two:400italic|Open+Sans:300,400', type='text/css')

block content
	#content-wrapper.row
		.valign-wrapper(style='height:calc(100vh - 50px);')
			p#search.center-align.valign Search Road Trips
		include footer.jade

Establish some sort of form

extends layout

block header
	link(rel='stylesheet', href='/css/form.css')
	link(rel='stylesheet', href='http://fonts.googleapis.com/css?family=Lobster+Two:400italic|Open+Sans:300,400', type='text/css')

block content
	#content-wrapper.row
		.valign-wrapper(style='height:calc(100vh - 50px);')
			p#search.center-align.valign Search Road Trips
			form.col.s12
				.row
					.input-field.col.s6
						input#first_name.validate(placeholder='Placeholder', type='text')
						label(for='first_name')
				.row
					.input-field.col.s6
						input#first_name.validate(placeholder='Placeholder', type='text')
						label(for='first_name')
				.row
					.input-field.col.s6
						input#first_name.validate(placeholder='Placeholder', type='text')
						label(for='first_name')
				.row
					.input-field.col.s6
						input#first_name.validate(placeholder='Placeholder', type='text')
						label(for='first_name')
		include footer.jade


extends ../layout/default.jade

block content
    - var canEdit = req.user.hasPermission('system.widgets.toggle');
    .panel.panel-primary
        .panel-heading
            | Visible Widgets
        table.table
            thead
                th Controller
                th Action
                if canEdit
                    th Actions
            tbody
                each widget in visible
                    tr
                        td= widget.controller
                        td.col-md-4= widget.action
                        if canEdit
                            td.col-md-1
                                form(method='POST',action='/widget/' + widget.id.replace('#', '_') + '/hide')
                                    button.btn.btn-primary(type='submit')
                                        span.fa.fa-eye-slash

    .panel.panel-info
        .panel-heading
            | Hidden Widgets
        table.table
            thead
                th Controller
                th Action
                if canEdit
                    th Actions
            tbody
                each widget in hidden
                    tr
                        td= widget.controller
                        td.col-md-4= widget.action
                        if canEdit
                            td.col-md-1
                                form(method='POST',action='/widget/' + widget.id.replace('#', '_') + '/show')
                                    button.btn.btn-primary(type='submit')
                                        span.fa.fa-eye

Disable button if cannot view widget anyway.

extends ../layout/default.jade

block content
    - var canEdit = req.user.hasPermission('system.widgets.toggle');
    .panel.panel-primary
        .panel-heading
            | Visible Widgets
        table.table
            thead
                th Controller
                th Action
                if canEdit
                    th Actions
            tbody
                each widget in visible
                    tr
                        td= widget.controller
                        td.col-md-4= widget.action
                        if canEdit
                            td.col-md-1
                                form(method='POST',action='/widget/' + widget.id.replace('#', '_') + '/hide')
                                    button.btn.btn-primary(type='submit')
                                        span.fa.fa-eye-slash

    .panel.panel-info
        .panel-heading
            | Hidden Widgets
        table.table
            thead
                th Controller
                th Action
                if canEdit
                    th Actions
            tbody
                each widget in hidden
                    - var canShow = req.user.hasPermission(widget.permission);
                    tr
                        td= widget.controller
                        td.col-md-4= widget.action
                        if canEdit
                            td.col-md-1
                                form(method='POST',action='/widget/' + widget.id.replace('#', '_') + '/show')
                                    button.btn.btn-primary(type='submit', disabled=!canShow)
                                        span.fa.fa-eye


- isDev = settings.env == 'development'
doctype html
html(ng-app="PFCM")
    head
        meta(charset='utf-8')
        meta(http-equiv='X-UA-Compatible', content='IE=edge')
        meta(name='viewport', content='width=device-width, initial-scale=1')
        title!= title
        if isDev
            link(rel='stylesheet', href='css/pfcm.css')
            script(src="js/libs.js")
            script(src="js/pfcm.js")
        else
            link(rel='stylesheet', href='css/pfcm.min.css')
            script(src="js/libs.min.js")
            script(src="js/pfcm.min.js")
    body(ng-controller="mainController")
        .loadingIndicator(ng-show="loading")

        include navbar.jade

Change initial scale in hopes of making viewport better on tablets

- isDev = settings.env == 'development'
doctype html
html(ng-app="PFCM")
    head
        meta(charset='utf-8')
        meta(http-equiv='X-UA-Compatible', content='IE=edge')
        meta(name='viewport', content='width=device-width, initial-scale=0.6')
        title!= title
        if isDev
            link(rel='stylesheet', href='css/pfcm.css')
            script(src="js/libs.js")
            script(src="js/pfcm.js")
        else
            link(rel='stylesheet', href='css/pfcm.min.css')
            script(src="js/libs.min.js")
            script(src="js/pfcm.min.js")
    body(ng-controller="mainController")
        .loadingIndicator(ng-show="loading")

        include navbar.jade


html
  body
    ion-view(title='Photo')
      ion-content(padding='true')
        div Something
        button#upload.button.button-block.button-energized(ng-click='takePhoto()')
         | Take photo

Hide back button after login

html
  body
    ion-view(title='Photo' hide-back-button=true)
      ion-content(padding='true')
        div Something
        button#upload.button.button-block.button-energized(ng-click='takePhoto()')
         | Take photo


extends index
include mixins/meta-search
include mixins/icon
include mixins/loader
include mixins/search-result-asset

append header
  +searchMeta(result, catalog, breadcrumbs)

block content

  block before-results

  .let-it-grow
    section.container-fluid
      #results.search-results.row
        if config.features.filterSidebar
          #sidebar.col-lg-3.col-sm-4.col-xs-12
            block sidebar
          #results-header.col-lg-9.col-sm-8.col-xs-12
            block results-header
        else
          #results-header.col-xs-12
            block results-header
          block results
      block after-results
        button.btn.btn-primary.btn-lg.invisible.load-more#load-more-btn
          +loader('Vis flere...')
  .clearfix

  a#toTop
    +icon('scrolltotop')

  include includes/footer

append javascript
  script.
    $(function() {
      $('#toTop').scrollToTop(400);
      // To ensure no boxes are hidden if the was some load error
      $('.loaded-more').removeClass('loaded-more');
    });

Fix layout as per design mockup

extends index
include mixins/meta-search
include mixins/icon
include mixins/loader
include mixins/search-result-asset

append header
  +searchMeta(result, catalog, breadcrumbs)

block content

  block before-results

  .let-it-grow
    section.container-fluid
      .search-results.row
        if config.features.filterSidebar
          #sidebar.col-lg-3.col-sm-4.col-xs-12
            block sidebar
          .col-lg-9.col-sm-8.col-xs-12
            #results-header
              block results-header
            #results.row
              block results
        else
          #results-header.col-xs-12
            block results-header
          #results
            block results
      block after-results
        button.btn.btn-primary.btn-lg.invisible.load-more#load-more-btn
          +loader('Vis flere...')
  .clearfix

  a#toTop
    +icon('scrolltotop')

  include includes/footer

append javascript
  script.
    $(function() {
      $('#toTop').scrollToTop(400);
      // To ensure no boxes are hidden if the was some load error
      $('.loaded-more').removeClass('loaded-more');
    });


doctype html
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
  body
    block content

Use Jade version of current HTML5BP

doctype
html(lang='sv-SE')
  head
    meta(charset='utf-8')
    meta(http-equiv='x-ua-compatible', content='ie=edge')
    title= title
    meta(name='description', content='')
    meta(name='viewport', content='width=device-width, initial-scale=1')
    link(rel='stylesheet', href='/stylesheets/style.css')
  body

    block content

    script.
      window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;
      ga('create','UA-XXXXX-Y','auto');ga('send','pageview')
    script(src="https://www.google-analytics.com/analytics.js", async, defer)


footer
  .container
    .row.partners-title
      .col-sm-12
        h3 Partners
    .row.partners-logos
      each sponsor in brigade.sponsors.other
        .col-md-4
          a(href=sponsor.link)
            img(src=sponsor.image, alt=sponsor.name)
    //- .row.show-partners
    //-   .col-sm-12
    //-     a.btn.btn-danger(href='http://codeforpoland.org/partnerzy/') Show all partners
  .row.footer-nav
    .col-sm-12
      ul
        li#menu-item-385.menu-item.menu-item-type-post_type.menu-item-object-page.menu-item-385
          a(href='http://codeforpoland.org/')=brigade.name
        if brigade.theme.page.events
          li
            a(href='/events') Events
        if brigade.theme.page.projects
          li
            a(href='/projects') Projects
        if brigade.theme.page.blog
          li
            a(href='/blog') Blog
        each external in brigade.theme.page.external
          li
            a(href=external.link, target=external.target)=external.name
        if brigade.theme.page.about
          li
            a(href='/contact') Contact

        li.float.right
          a(href='https://github.com/sfbrigade/brigadehub') powered by brigadehub

Revert partner logo code block

footer
  .container
    .row.partners-title
      .col-sm-12
        h3 Partners
    .row.partners-logos
      each sponsor in brigade.sponsors
        .col-md-4
          if (!(sponsor.main))
            a(href=sponsor.link)
              img(src=sponsor.image, alt=sponsor.name)
    //- .row.show-partners
    //-   .col-sm-12
    //-     a.btn.btn-danger(href='http://codeforpoland.org/partnerzy/') Show all partners
  .row.footer-nav
    .col-sm-12
      ul
        li#menu-item-385.menu-item.menu-item-type-post_type.menu-item-object-page.menu-item-385
          a(href='http://codeforpoland.org/')=brigade.name
        if brigade.theme.page.events
          li
            a(href='/events') Events
        if brigade.theme.page.projects
          li
            a(href='/projects') Projects
        if brigade.theme.page.blog
          li
            a(href='/blog') Blog
        each external in brigade.theme.page.external
          li
            a(href=external.link, target=external.target)=external.name
        if brigade.theme.page.about
          li
            a(href='/contact') Contact

        li.float.right
          a(href='https://github.com/sfbrigade/brigadehub') powered by brigadehub