Git Product home page Git Product logo

pymake's Introduction

  • ๐Ÿ‘‹ Hi, Iโ€™m @linuxlizard
  • ๐Ÿ‘€ Iโ€™m interested in embedded systems, embedded linux, device drivers, wifi, build systems.
  • ๐ŸŒฑ Iโ€™m currently writing my own GNU Makefile source level debugger.
  • ๐Ÿ“ซ How to reach me [email protected]

pymake's People

Contributors

cizezsy avatar delaunay avatar linuxlizard avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pymake's Issues

patsubst shortcut ':=' failing

Example:

SUBS=gpl usr lib modules
$(info clean-rule=$(SUBS:=-clean))

@:;@:

Result should be gpl-clean usr-clean lib-clean modules-clean
instead seeing:
-clean -clean -clean -clean -clean

issue in complex .mk files

Hello Team,

I have given the below .mk file as an input to your code and it has given a error. Could you give the solution for this.

device-lynk.mk

Copyright (C) 2021 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.

TARGET_KERNEL_DIR ?= device/google/lynx-kernel
TARGET_BOARD_KERNEL_HEADERS := device/google/lynx-kernel/kernel-headers

$(call inherit-product-if-exists, vendor/google_devices/lynx/prebuilts/device-vendor-lynx.mk)
$(call inherit-product-if-exists, vendor/google_devices/gs201/prebuilts/device-vendor.mk)
$(call inherit-product-if-exists, vendor/google_devices/gs201/proprietary/device-vendor.mk)
$(call inherit-product-if-exists, vendor/google_devices/lynx/proprietary/lynx/device-vendor-lynx.mk)
$(call inherit-product-if-exists, vendor/google_devices/lynx/proprietary/device-vendor.mk)
$(call inherit-product-if-exists, vendor/google_devices/lynx/proprietary/WallpapersLynx.mk)

DEVICE_PACKAGE_OVERLAYS += device/google/lynx/lynx/overlay

include device/google/lynx/audio/lynx/audio-tables.mk
include device/google/gs201/device-shipping-common.mk
include device/google/lynx/vibrator/cs40l26/device.mk

go/lyric-soong-variables

$(call soong_config_set,lyric,camera_hardware,lynx)
$(call soong_config_set,lyric,tuning_product,lynx)
$(call soong_config_set,google3a_config,target_device,lynx)

Init files

PRODUCT_COPY_FILES +=
device/google/lynx/conf/init.lynx.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/hw/init.lynx.rc

Recovery files

PRODUCT_COPY_FILES +=
device/google/lynx/conf/init.recovery.device.rc:$(TARGET_COPY_OUT_RECOVERY)/root/init.recovery.lynx.rc

insmod files

PRODUCT_COPY_FILES +=
device/google/lynx/init.insmod.lynx.cfg:$(TARGET_COPY_OUT_VENDOR)/etc/init.insmod.lynx.cfg

Camera

PRODUCT_COPY_FILES +=
device/google/lynx/media_profiles_lynx.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_V1_0.xml

Media Performance Class 13

PRODUCT_PROPERTY_OVERRIDES += ro.odm.build.media_performance_class=33

Display Config

PRODUCT_COPY_FILES +=
device/google/lynx/lynx/display_colordata_dev_cal0.pb:$(TARGET_COPY_OUT_VENDOR)/etc/display_colordata_dev_cal0.pb

Display

PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.display.lbe.supported=1
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.set_idle_timer_ms=1500
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += ro.surface_flinger.ignore_hdr_camera_layers=true

#config of primary display frames to reach LHBM peak brightness
PRODUCT_DEFAULT_PROPERTY_OVERRIDES += vendor.primarydisplay.lhbm.frames_to_reach_peak_brightness=2

NFC

#PRODUCT_COPY_FILES +=
#frameworks/native/data/etc/android.hardware.nfc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.xml
#frameworks/native/data/etc/android.hardware.nfc.hce.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hce.xml
#frameworks/native/data/etc/android.hardware.nfc.hcef.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.hcef.xml
#frameworks/native/data/etc/com.nxp.mifare.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.nxp.mifare.xml
#frameworks/native/data/etc/android.hardware.nfc.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.nfc.ese.xml
#device/google/lynx/nfc/libnfc-hal-st.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libnfc-hal-st.conf
#device/google/lynx/nfc/libnfc-nci-lynx.conf:$(TARGET_COPY_OUT_PRODUCT)/etc/libnfc-nci.conf

#PRODUCT_PACKAGES +=
#NfcNci
#Tag
#android.hardware.nfc-service.st

SecureElement

#PRODUCT_PACKAGES +=
#[email protected]
#[email protected]

#PRODUCT_COPY_FILES +=
#frameworks/native/data/etc/android.hardware.se.omapi.ese.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.ese.xml
#frameworks/native/data/etc/android.hardware.se.omapi.uicc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.se.omapi.uicc.xml
#device/google/lynx/nfc/libse-gto-hal.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal.conf
#device/google/lynx/nfc/libse-gto-hal2.conf:$(TARGET_COPY_OUT_VENDOR)/etc/libse-gto-hal2.conf

#DEVICE_MANIFEST_FILE +=
#device/google/lynx/nfc/manifest_se.xml

Thermal Config

PRODUCT_COPY_FILES +=
device/google/lynx/thermal_info_config_lynx.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config.json
device/google/lynx/thermal_info_config_charge_lynx.json:$(TARGET_COPY_OUT_VENDOR)/etc/thermal_info_config_charge.json

Power HAL config

PRODUCT_COPY_FILES +=
device/google/lynx/powerhint.json:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.json

PowerStats HAL

PRODUCT_SOONG_NAMESPACES +=
device/google/lynx/powerstats
device/google/lynx

Bluetooth HAL and Pixel extension

include device/google/lynx/bluetooth/qti_default.mk

Keymaster HAL

#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= [email protected]

Gatekeeper HAL

#LOCAL_GATEKEEPER_PRODUCT_PACKAGE ?= [email protected]

Gatekeeper

PRODUCT_PACKAGES += \

[email protected]

Keymint replaces Keymaster

PRODUCT_PACKAGES += \

android.hardware.security.keymint-service

Keymaster

#PRODUCT_PACKAGES += \

[email protected] \

[email protected]

#PRODUCT_PACKAGES += [email protected]
#PRODUCT_PACKAGES += [email protected]
#LOCAL_KEYMASTER_PRODUCT_PACKAGE := [email protected]
#LOCAL_KEYMASTER_PRODUCT_PACKAGE ?= [email protected]

PRODUCT_PROPERTY_OVERRIDES += \

ro.hardware.keystore_desede=true \

ro.hardware.keystore=software \

ro.hardware.gatekeeper=software

Fingerprint HAL

GOODIX_CONFIG_BUILD_VERSION := g7_trusty
include device/google/gs101/fingerprint/udfps_common.mk
ifeq ($(filter factory%, $(TARGET_PRODUCT)),)
include device/google/gs101/fingerprint/udfps_shipping.mk
else
include device/google/gs101/fingerprint/udfps_factory.mk
endif

Vibrator HAL

PRODUCT_VENDOR_PROPERTIES +=
ro.vendor.vibrator.hal.supported_primitives=243
ro.vendor.vibrator.hal.f0.comp.enabled=1
ro.vendor.vibrator.hal.redc.comp.enabled=0
persist.vendor.vibrator.hal.context.enable=false
persist.vendor.vibrator.hal.context.scale=40
persist.vendor.vibrator.hal.context.fade=true
persist.vendor.vibrator.hal.context.cooldowntime=1600
persist.vendor.vibrator.hal.context.settlingtime=5000

Trusty liboemcrypto.so

PRODUCT_SOONG_NAMESPACES += vendor/google_devices/lynx/prebuilts

GPS xml

ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES +=
device/google/lynx/location/gps.xml.l10:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.xml
device/google/lynx/location/lhd.conf.l10:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/lhd.conf
device/google/lynx/location/scd.conf.l10:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/scd.conf
else
PRODUCT_COPY_FILES +=
device/google/lynx/location/gps_user.xml.l10:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/gps.xml
device/google/lynx/location/lhd_user.conf.l10:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/lhd.conf
device/google/lynx/location/scd_user.conf.l10:$(TARGET_COPY_OUT_VENDOR)/etc/gnss/scd.conf
endif

DCK properties based on target

PRODUCT_PROPERTY_OVERRIDES +=
ro.gms.dck.eligible_wcc=2

WIFI COEX

PRODUCT_COPY_FILES +=
device/google/lynx/wifi/coex_table.xml:$(TARGET_COPY_OUT_VENDOR)/etc/wifi/coex_table.xml

WiFi Overlay

PRODUCT_PACKAGES +=
WifiOverlay2023Mid

Wifi Aware Interface

PRODUCT_PROPERTY_OVERRIDES +=
wifi.aware.interface=wifi-aware0

Set zram size

PRODUCT_VENDOR_PROPERTIES +=
vendor.zram.size=3g

Increment the SVN for any official public releases

PRODUCT_VENDOR_PROPERTIES +=
ro.vendor.build.svn=6

Set support hide display cutout feature

PRODUCT_PRODUCT_PROPERTIES +=
ro.support_hide_display_cutout=true

Set support One-handed mode

PRODUCT_PRODUCT_PROPERTIES +=
ro.support_one_handed_mode=true

Fingerprint als feed forward

PRODUCT_VENDOR_PROPERTIES +=
persist.vendor.udfps.als_feed_forward_supported=true
persist.vendor.udfps.lhbm_controlled_in_hal_supported=true

Hide cutout overlays

PRODUCT_PACKAGES +=
NoCutoutOverlay
AvoidAppsInCutoutOverlay

MIPI Coex Configs

PRODUCT_COPY_FILES +=
device/google/lynx/lynx/radio/lynx_display_primary_mipi_coex_table.csv:$(TARGET_COPY_OUT_VENDOR)/etc/modem/display_primary_mipi_coex_table.csv

Camera

PRODUCT_PROPERTY_OVERRIDES +=
persist.vendor.camera.extended_launch_boost=1
persist.vendor.camera.optimized_tnr_freq=1
persist.vendor.camera.raise_buf_allocation_priority=1
persist.vendor.camera.start_cpu_throttling_at_moderate_thermal=1

Enable camera 1080P 60FPS binning mode

PRODUCT_VENDOR_PROPERTIES +=
persist.vendor.camera.1080P_60fps_binning=true

Increase thread priority for nodes stop

PRODUCT_VENDOR_PROPERTIES +=
persist.vendor.camera.increase_thread_priority_nodes_stop=true

OIS with system imu

PRODUCT_VENDOR_PROPERTIES +=
persist.vendor.camera.ois_with_system_imu=true

Enable camera exif model/make reporting

PRODUCT_VENDOR_PROPERTIES +=
persist.vendor.camera.exif_reveal_make_model=true

Enable front camera always binning for 720P or smaller resolution

PRODUCT_VENDOR_PROPERTIES +=
persist.vendor.camera.front_720P_always_binning=true

Use GmsCorePrebuilt y2022w28

USE_GMSCORE_PREBUILT_Y2022W28 := true

Device features

PRODUCT_COPY_FILES +=
frameworks/native/data/etc/handheld_core_hardware.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/handheld_core_hardware.xml

Enable adpf cpu hint session for SurfaceFlinger

PRODUCT_DEFAULT_PROPERTY_OVERRIDES +=
debug.sf.enable_adpf_cpu_hint=true

The default value of this variable is false and should only be set to true when

the device allows users to enable the seamless transfer feature.

PRODUCT_PRODUCT_PROPERTIES +=
euicc.seamless_transfer_enabled_in_non_qs=true

##Audio Vendor property
PRODUCT_PROPERTY_OVERRIDES +=
persist.vendor.audio.cca.enabled=true

userdebug specific

ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
PRODUCT_COPY_FILES +=
device/google/gs201/init.hardware.wlc.rc.userdebug:$(TARGET_COPY_OUT_VENDOR)/etc/init/init.wlc.rc
endif

SKU specific RROs

PRODUCT_PACKAGES +=
SettingsOverlayG82U8
SettingsOverlayG0DZQ
SettingsOverlayGHL1X
SettingsOverlayGWKK3

"Error after ruuning the command"

python -m pymake.pymake -f device-lynx.mk
Traceback (most recent call last):
File "/home/neelup/anaconda3/lib/python3.9/runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/home/neelup/anaconda3/lib/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/pymake.py", line 559, in
main()
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/pymake.py", line 556, in main
sys.exit(run_it(args))
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/pymake.py", line 515, in run_it
makefile = parse_makefile(infilename)
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/pymake.py", line 150, in parse_makefile
return parse_makefile_from_src(src)
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/pymake.py", line 127, in parse_makefile_from_src
statement_list = [parse_vline_stream(vline, vline_iter) for vline in vline_iter]
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/pymake.py", line 127, in
statement_list = [parse_vline_stream(vline, vline_iter) for vline in vline_iter]
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/pymake.py", line 74, in parse_vline_stream
return parsermk.parse_expression(statement, virt_line, vline_iter)
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/parsermk.py", line 855, in parse_expression
dir
= parse_directive(expr, directive_vstr, virt_line, vline_iter)
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/parsermk.py", line 752, in parse_directive
return lut[str(directive_vstr)](expr, directive_vstr, virt_line, vline_iter)
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/parsermk.py", line 360, in parse_ifeq_directive
cond_block = handle_conditional_directive(dir
, vline_iter)
File "/home/neelup/Downloads/0_MLPPT/pymake-master/pymake/parsermk.py", line 690, in handle_conditional_directive
assert 0, dir_str
AssertionError: include

Thanks and Regards
Neelu Patel

Something simple on usage

Hi
I'd really like to use this but it's pretty hard to know where to start. Could you add something short on usage in the Readme perhaps?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.